我有两个对象。安排和InvolvedParty。 Arrangement和InvolvedParty之间存在关联。
当我创建我的第一个安排并将InvolvedParty附加到它时,在持久化期间没有问题。 当我创建我的第二个安排并从数据库中获取先前存储的InvolvedParty以将其附加到第二个安排时,持久化将不起作用。
这是错误: [20/09/12 9:53:40:998 CEST] 00000020 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,这是一个独立的对象,所以我应该合并?但这感觉就像是一个矛盾。
答案 0 :(得分:1)
确保在用于保留Arrangement的同一事务中从数据库中获取现有的InvolvedParty。如果您在两个单独的操作中执行这些操作,则持久性上下文在第一个事务完成时结束,OpenJPA将InvolvedParty视为已分离的对象。
有关详细信息,请参阅OpenJPA手册中的Persistence Context。