复杂参考情况行为中的冬眠逐出级联

时间:2019-01-04 10:31:56

标签: hibernate jpa

三个实体:A,B,C。A和B的集合数据成员可以容纳多个C,例如,对象a包含c1&c2,对象b包含c1(具有DETACH级联类型)。

首先根据上面的描述将它们持久保存到数据库中,然后从会话中获取a和b(热切加载c1和c2)。然后逐出b对象,由于DETACH级联,c1也应逐出。但是,c1也由对象a持有。是否应该驱逐?无论冬眠做什么,似乎都不一致

我没有找到有关此情况的任何文档。

1 个答案:

答案 0 :(得分:0)

我进入休眠代码,当分离对象b时,无论c1是否仍被对象a占用,都会从会话中分离2个对象(b,c1)。而且将c1对象重新连接到会话不会触发选择SQL操作,似乎休眠会话将c1快照数据保存在了另一个位置,即使它已经分离了