想象一下,我有一个由许多其他实体引用的hibernate实体。现在我创建了一个新的实体,我希望新的实体能够取代旧的实体,所以它被别人引用而不是旧实体。
这样做的最佳方式是什么?
答案 0 :(得分:0)
我认为你应该深度复制(你曾经做过这样做)原始实体将state属性设置为删除并使hibernate更新实体。然后对复制的实体进行任何修改,并使hibernate保存此实体。结果将是原始实体将被删除并复制将添加为带有原始引用的新实体。
答案 1 :(得分:0)
最简单的方法是在引用实体上使用更新语句,例如:
update ReferringEntity re set re.entity.id = :newId where re.entity.id = :oldId