2012-09-20 5 views
1

두 개의 객체가 있습니다. 정리와 참여. Arrangement와 InvolvedParty 사이에는 연관성이 있습니다.openjpa : 분리 된 객체에 대한 연관이있는 새로운 엔티티

내가 첫 번째 약정을 작성하고 그것에 InvolvedParty를 첨부하면 지속 기간 중 아무런 문제가 없습니다. 두 번째 정렬을 만들고 데이터베이스에서 이전에 저장된 InvolvedParty를 가져 와서 두 번째 정렬에 연결하면 지속이 작동하지 않습니다. [20/09/12 9 : 께 : 53 : 40 : 998 CEST] 00,000,020 RegisteredSyn E WTRN0074E : before_completion 동기 동작으로부터 잡힌 예외 : org.apache.openjpa.persistence.EntityExistsException : 시도 지속

이 오류이며 분리 된 객체 "com.xxx.crs.model.involvedparty.InvolvedParty-com.xxx.crs.model.involvedparty.InvolvedParty-101". 이것이 새로운 인스턴스 인 경우 지속될 때 versino 및/또는 자동 생성 기본 키 필드가 null/default인지 확인하십시오. FailedObject : com.xxx.crs.model.involvedparty.InvolvedParty-com.xxx.crs.model.involvedparty.InvolvedParty-101

이제 어떻게해야합니까? 배열은 새로운 대상입니다. 그래서 그것을 유지해야한다고 생각하십시오. 그러나 배열의 항목은 InvolvedParty입니다. 분리 된 객체이므로 병합을 수행해야합니까? 그것은 모순처럼 느껴집니다.

답변

1

약정을 유지하는 데 사용하는 것과 동일한 트랜잭션으로 데이터베이스에서 기존 InvolvedParty를 가져와야합니다. 이러한 작업을 두 개의 개별 작업으로 수행하면 첫 번째 트랜잭션이 완료되고 OpenJPA가 InvolvedParty를 분리 된 객체로 처리 할 때 지속성 컨텍스트가 종료됩니다.

자세한 내용은 OpenJPA 설명서의 Persistence Context을 참조하십시오.