Players
컬렉션이있는 Team
엔터티를 고려하십시오. Team
매핑을 사용하면 계단식 병합 및 저장 업데이트를 Players
으로 설정할 수 있습니다.최대 절전 모드 : 한 개체에서 다른 개체로 계단식 엔터티 이동
Team
엔티티가 데이터베이스에 4 Players
이 있습니다.
내 서비스는 사용자가 Team
을 지정할 수 있습니다, 그리고 Player
한 후 다음을 수행합니다 :
- 기존
Team
의 클론 B를 작성을 - 는 A로부터
Player
C를 제거하고 추가Team
컬렉션에 B
위의 모든 작업은 데이터베이스 쿼리 만 수행하는 하나의 트랜잭션으로 수행됩니다. 업데이트를 수행하지 않습니다.
두 번째 트랜잭션은 엔티티를 데이터베이스에 저장하는 데 사용됩니다. 그러나, 나는 이것에 접근하는 방법을 확신하지 못한다.
Team
A. 병합
- 이 증가
Player
C.Player
C의 버전 번호를 병합 한 후 효과적으로 팀 B 절약 할 수Team
B를 병합하고,이 :내 기존의 논리는 다음을 포함 Hibernate 세션이 실패 함
Team
인스턴스에 이전Player
C의 버전 번호에 대한 참조가 여전히 있습니다.
어떻게이 두 개체를 저장합니까? Player
C를 별도로 저장해야하며 계단식을 사용하지 않아야합니까?