休眠同一对象的两个版本

时间:2018-09-20 10:08:52

标签: java hibernate jpa spring-data-jpa

我有一个在先前的请求中已从数据库加载的实体,现在已对其进行了修改。在持久性上下文中它仍然是独立的。

当我提交并输入save()方法时,将首先调用EntityManager.load()以获取对象的先前状态,进行一些比较,计算等。(我现在正在使用entity和entityBefore)< / p>

保存实体现在导致错误。我正在尝试保存具有相同ID的其他对象。 目前的解决方案是仅分离entityBefore,然后使用saveOrUpdate。似乎像一种魅力一样工作。

但是,这只会导致另一个问题。该实体包含其他对象的列表(1-n)。从列表中删除其中之一会返回错误,并且以前也已将它们分离。

目前,我不确定解决这件事的最佳方法是什么。如何在不将两个对象都存储在数据库中的情况下管理同一对象的两个不同版本?有没有办法可以在不修改上下文的情况下从数据库获取旧状态?我需要一次刷新列表中的每个对象吗?...

谢谢您的建议。

0 个答案:

没有答案