我通过hibernate搜索加载一些hibernate对象,然后在UI中显示它们。在那里,我们的用户选择一个对象并从@ManyToMany关联中删除一些元素。
当然,正如在hibernate documentation中写入会话时,即使我没有在找到的对象中调用Session#save,也会自动保留更改。
但这不是我需要的行为。我需要我的用户从关联中删除对象,但只是暂时的,仅用于从修改的对象生成报告而不更改我的数据库。因此,关联中删除的对象不会显示在我的报告中。
我怎样才能实现这一目标?
我在考虑将关联对象标记为Cloneable并构建一个新实体并在那里进行更改,因为此特定UI中的所有操作都是只读的。
有什么建议吗?
答案 0 :(得分:1)
使用cascade="evict"
标记集合。然后根据需要删除对象,生成报告,然后在刷新之前evict()
对象。