1

我有两个对象。安排和参与方。Arrangement 和 InvolvedParty 之间存在关联。

当我创建我的第一个安排并将 InvolvedParty 附加到它时,在坚持期间没有问题。当我创建第二个 Arrangement 并从数据库中获取先前存储的 InvolvedParty 以将其附加到第二个 Arrangement 时,persist 将不起作用。

这是错误:[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 和/或自动生成的主键字段在持久化时为空/默认值。失败对象:com.xxx.crs.model.involvedparty.InvolvedParty-com.xxx.crs.model.involvedparty.InvolvedParty-101

现在我该怎么办?安排是一个新对象,所以考虑到我应该坚持它。但是安排的一项是InvolvedParty,它是一个分离的对象,所以我应该合并吗?虽然感觉很矛盾。

4

1 回答 1

1

确保在用于持久化 Arrangement 的同一事务中从数据库中获取现有的 InvolvedParty。如果您在两个单独的操作中执行这些操作,则持久性上下文会在第一个事务完成时结束,并且 OpenJPA 会将 InvolvedParty 视为一个分离的对象。

有关更多信息,请参阅OpenJPA 手册中的持久性上下文

于 2012-09-22T05:46:52.293 回答