0
은 6.1 WAS,이 예외를 얻을 :EntityManager의 병합 던지는 EntityExists 예외
Exception data: <openjpa-1.0.4-SNAPSHOT-r420667:955062 nonfatal store error> org.apache.openjpa.persistence.EntityExistsException: Attempt to persist detached object "[email protected]". If this is a new instance, make sure any versino and/or auto-generated primary key fields are null/default when persisting.
FailedObject: [email protected]aa
at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2368)
at org.apache.openjpa.kernel.AttachStrategy.persist(AttachStrategy.java:94)
at org.apache.openjpa.kernel.VersionAttachStrategy.attach(VersionAttachStrategy.java:95)
at org.apache.openjpa.kernel.AttachManager.attach(AttachManager.java:241)
at org.apache.openjpa.kernel.AttachStrategy.attachCollection(AttachStrategy.java:333)
at org.apache.openjpa.kernel.AttachStrategy.replaceCollection(AttachStrategy.java:301)
at org.apache.openjpa.kernel.AttachStrategy.attachField(AttachStrategy.java:220)
at org.apache.openjpa.kernel.VersionAttachStrategy.attach(VersionAttachStrategy.java:157)
at org.apache.openjpa.kernel.AttachManager.attach(AttachManager.java:241)
at org.apache.openjpa.kernel.AttachManager.attach(AttachManager.java:101)
at org.apache.openjpa.kernel.BrokerImpl.attach(BrokerImpl.java:3161)
at org.apache.openjpa.kernel.DelegatingBroker.attach(DelegatingBroker.java:1142)
at org.apache.openjpa.persistence.EntityManagerImpl.merge(EntityManagerImpl.java:665)
at com.ibm.ws.jpa.management.JPAExEmInvocation.merge(JPAExEmInvocation.java:335)
at com.ibm.ws.jpa.management.JPAEntityManager.merge(JPAEntityManager.java:123)
내가 JPAEntityManager.java
의 소스를 필요는 없습니다; 하지만 병합이 먼저 엔티티가 존재하는지 확인하기 위해 검사를 수행하기 때문에 EntityExistsException을 merge()
작업으로 처리 할 수 없다고 생각했습니다. 그렇지 않은 경우 삽입하십시오. 예이면 업데이트하십시오. 여기에 무슨 문제가 있습니까?
당신은 병합 방법은 EntityExistsException를 선언하지 않는 정확합니다. OpenJPA 런타임에서 잘못된 일이 발생하고 병합하려고하는 Entity가 업데이트가 아닌 새로운 것임을 정확히 감지합니다. ID 및 버전 속성의 미리보기를 게시 할 수 있습니까? 또한 시나리오에 대해 좀 더 자세히 설명하면 좋을 것입니다. 즉 : 당신이 합병하는 곳에서 Entity가 왔습니까? – Rick
답장을 보내 주셔서 감사합니다. 나는 더 많은 것을 게시하려고 노력할 것이다. – Victor