我想知道当我这样做时真正发生了什么:
Person p1 = new Person();
...
p1.save()
就保存更新的级联顺序而言。
这里有一些推理,我想知道它们是否正确:
a) 如果 Person至少有一个与 'inverse=false' 的关系(默认),它会先做所有的级联,最后坚持 p1 本身。(因为可能是 FK 身份尚不清楚)
b) 如果 Person 与 'inverse=true' 有所有关系,它可以先保存 p1,然后进行级联。
c) 假设我们有一个 Person<-->Car 一对一的双向关系,并且在两者中我们都有 'inverse=false' 和 'save-update' 级联:
c.1) 会发生什么?这似乎是一个无限循环的情况。
c.2) 正确的解决方案是在 Person 中使用 inverse=true 执行“cascade=save-update”,而在 Car 中不执行 cascade 并且 inverse=false?
也许关于级联顺序决定背后的真实逻辑以及如何涉及“逆”属性的进一步链接可以帮助我。
提前致谢