[java] Hibernate Envers에서 변경 이력을 저장하는 데이터베이스 테이블의 구조는 어떻게 되나요?
Hibernate Envers는 다음과 같은 구조의 데이터베이스 테이블을 사용합니다:
-
[테이블명]_AUD
: 이 테이블은 변경 이력을 저장하는 메인 테이블입니다. 원본 테이블의 각 레코드에 대해 변경 이력이 저장됩니다. 기본적으로 이 테이블은 원본 테이블과 동일한 구조를 갖습니다. 변경 이력 정보를 기록하기 위해 추가적인 열이 포함됩니다. 일반적으로REV
열은 변경 이력의 버전을 나타내는데 사용됩니다. -
[테이블명]_AUD_ID
: 이 테이블은 변경 이력의 식별자를 저장하는 보조 테이블입니다.REV
열의 값과 변경된 레코드의 식별자 값을 매핑합니다. 이 테이블은 원본 테이블의 식별자와 외래 키 관계를 가지며 데이터의 일관성을 유지합니다.
Hibernate Envers를 사용하여 변경 이력을 저장하기 위해 위의 구조를 따르는 데이터베이스 테이블을 생성할 수 있습니다. 이를 통해 객체의 이전 상태를 복원하거나 특정 시점의 데이터를 조회할 수 있습니다.
더 자세한 정보는 Hibernate Envers 문서를 참조하시기 바랍니다.
참고 문서
- Hibernate Envers 문서: https://docs.jboss.org/hibernate/orm/5.5/userguide/html_single/Hibernate_User_Guide.html#envers