我正在通过 hibernate 搜索加载一些 hibernate 对象,然后在 UI 中显示它们。在那里,我们的用户选择一个对象并从 @ManyToMany 关联中删除一些元素。
当然,正如 hibernate documentation 中所写。当刷新 session 时,即使我不在找到的对象中调用 Session#save,更改也会自动保留。
但这不是我需要的行为。我需要我的用户从关联中删除对象,但只是暂时的,仅用于从修改的对象生成报告而不更改我的数据库。因此关联中删除的对象不会显示在我的报告中。
我怎样才能做到这一点?
我正在考虑将关联对象标记为 Cloneable并构建一个新实体并在其中进行更改,因为此特定 UI 中的所有操作都是只读的。
有什么建议吗?
最佳答案
使用cascade="evict"
标记集合。然后根据需要删除对象,生成报告,然后在刷新之前 evict()
对象。
关于java - 阻止 Hibernate 在关联集合中保留更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11439567/