在没有cascade =“evict”的情况下驱逐急切的关联

时间:2011-09-26 10:25:32

标签: java hibernate

有没有办法让Hibernate逐个驱逐一个实体及其所有渴望或一对一的关联,而不必逐个手动逐出关联? (并且没有在关联上设置cascade =“evict”)。

一旦持久层构建并正常工作,我通常会发现这些需求,而且我不相信为这些关联全局添加这种配置。我只是想在特定情况下级联驱逐。

此外,如果有一种方法可以从DB 中检索实体而没有将它(以及它的热切关联)附加到会话中,那就没关系了。

我想这样做是为了在UI修改的实体和它当前的DB状态之间执行一些比较逻辑。在比较逻辑之后,将始终保存UI修改的实体。比较背后的逻辑与渴望或一对一的关联没有任何关系。

2 个答案:

答案 0 :(得分:2)

你的第一个问题的答案是否定的。

我不明白为什么,在你的第二个问题中,你不希望将实体附加到会话中。我可以看到为什么你不想加载一些关联,但这正是将关联设置为懒惰而不是急切的目标。只是不要让他们急切,他们将不会被加载到会话中。

答案 1 :(得分:0)

如何编写一个直接在DB中进行比较的新函数并返回一些东西?

我认为这适合您的需求。