낙천적 동시성 제어를 구현하기 위해 버전 열과 함께 최대 절전 모드를 사용하고 있습니다.더티인지 아닌지에 관계없이 Hibernate에서 저장시 버전 필드를 늘리는 방법은 무엇입니까?
질문 : 변경 여부와 관계없이 데이터베이스에 저장할 때마다 엔티티의 버전 번호를 증가시킬 수 있습니까?
엔터티에서 일부 필드가 변경되면 버전 번호가 증가합니다. 그러나 엔티티에서 필드가 변경되지 않으면 엔티티의 버전 번호는 변경되지 않습니다.
이 질문의 이유는 두 테이블 사이에 논리적 인 마스터 - 세부 관계가 있고 마스터 데이터가 세부 사항이 변경 될 때마다 마스터 테이블의 버전 번호를 늘리고 싶습니다. 변화. 이 마스터 - 세부 관계는 Hibernate에 매핑되지 않는다. 나는 항상 그것들을 하나의 트랜잭션으로 저장한다.
인터셉터를 사용하여 버전 업데이트를 트리거 한 적이 있습니까? – Fil
아직 인터셉터를 다루지 않았습니다. 모범이 있습니까? 필자가 이해하는 한 * findDirty (...) * 함수를 덮어 쓰면 엔티티를 더티라고 표시하는 것으로 충분할 수 있습니다. – MicSim
나는 주로 감사 용도로 사용했지만, 다양한 이벤트 (예 : postFlush, postFlushDirty 등) 후에 엔티티에 액세스 권한을 부여합니다. 세부 정보가 플러시되면 마스터의 버전 번호를 업데이트하는 두 번째 호출을 가질 수 있습니다. – Fil