在休眠状态下更新对实体的引用的最佳方法

问题描述

|| 想象一下,我有一个由许多其他实体引用的休眠实体。现在,我创建一个新实体,并希望新实体取代旧实体,以便其他实体代替旧实体引用它。 做这个的最好方式是什么?     

解决方法

最简单的方法是在引用实体上使用update语句,例如:
update ReferringEntity re set re.entity.id = :newId where re.entity.id = :oldId
    ,我认为您应该对原始实体进行深复制(无论您采用哪种方式)都将state属性设置为delete,并使其休眠以更新该实体。然后对复制的实体进行任何修改,并使其休眠以保存该实体。结果是原始实体将被删除,复制后的实体将被添加为带有原始引用的新实体。