2011-02-10 4 views
1

테이블과 뷰가 2 개 있습니다. TableA에는 특정 필드가 있습니다. TableAHistory에는 TableA와 동일한 필드가 있습니다. ViewAll은 TableA 및 TableAHistory의 결합체이지만 현재 버전 (TableA 행의 경우 'Y'및 TableAHistory 행의 경우 'N')을 나타내는 "current_vers"라는 필드가 추가로 있습니다.테이블과 뷰 간 최대 절전 엔터티 상속

TableA에 대해 기존의 최대 절전 모드 엔터티 빈을 가져 와서 ViewAll에 대한보기를 만들 수 있도록 확장해야하는 것처럼 보입니다. 그러나이 작업을 수행 할 때 내가 갖고 있지 않은 DTYPE 열에 대한 오류가 발생합니다.

어떻게해야합니까?

EDIT :보기를 쿼리 할 수 ​​있어야하지만 결과는 TableA beans이어야합니다.

+0

TableA 및 TableAHistory는 동일하거나 별도의 DB 테이블에 있습니까? –

+0

별도의 테이블입니다. TableA가 수정되면 TableA에서 TableB로 데이터를 복사하는 트리거가 있습니다. –

답변

0

감사 추적을 만드는 것 같습니다. 내 대답은 그 가정을 기반으로합니다.

최고의 Hibernate 승인 솔루션은 Hibernate Envers을 사용하는 것입니다. 이를 통해 감사 할 필드와 관계 및 상속 경계에서 작동하는 강력한 버전 관리 구현을 세밀하게 제어 할 수 있습니다. Envers에는 이전 버전에 액세스하여 변경 사항, 타임 스탬프, 버전 등을 볼 수있는 API도 있습니다.

유연성을 계속 사용할 수 있다면 Envers를 사용하는 것이 좋습니다.

관련 문제