2013-07-29 3 views
2

Hibernate Envers와 함께 Spring v2.5.5/Hibernate v3.6.3을 사용하여 변경 사항을 감사합니다.Hibernate는 다중 트랜잭션에 걸쳐 단일 리비전을 처리합니다.

현재 각 트랜잭션마다 새 개정이 생성됩니다.

그러나 내 응용 프로그램에서 너무 작은 작업 단위 (예 : 트랜잭션 당 1 업데이트)가 너무 많아서 많은 양의 감사 레코드가 생성됩니다.

특정 작은 작업 단위가 트랜잭션 당 1 개정이 아닌 여러 트랜잭션에 대해 단일 개정을 생성하도록 Envers를 구성 할 수 있습니까?

답변

1

엔버는 엔티티를 저장하거나 업데이트 할 때마다 수정본을 생성합니다. 이를 무시하는 쉬운 방법은 없습니다. Envers는 매우 쉽고 빠르게 구현할 수 있기 때문에 훌륭하지만 응용 프로그램에 따라 많은 감사 레코드를 매우 빠르게 생성 할 수도 있습니다. Envers가 앱에 너무 시끄 럽다면 트리거 또는 자체 로깅 코드를 사용하여 맞춤 감사 구현을 탐색해야 할 수 있습니다.

+0

이것이 내가 할 수있는 최종 해결책입니다. 그러나 그것이 Envers 자체를 통해 가능한지 알아야합니다. – Ambrish

+0

불행히도 아닙니다. Envers 핵심 기능의 대부분을 재정의하지 않아도됩니다. 자체 감사 로그를 작성하는 것이 더 쉬울 것이므로 작업 단위 (UOW)가 무엇이고 로깅 할 항목을 사용자 정의 할 수 있습니다. –