0

我在使用 inverse = true 的 Hibernate 一对多映射中感到困惑。

1.Inverse提供双向映射。我们把它放在收集侧,另一侧将拿船主。2.Inverse和Cascade都用于不同的目的。

3.In Casecade = all Hibernate 将在一次调用中保存父级及其关联。

4.在 Cascade =none 中,我们需要进行不同的调用来保存父级及其子级。

5.在 cascade = all 和 inverse =true 中,在一对多的情况下会少一个更新查询来更新约束。

但是在 cascade= none 或者 inverse= true 或 inverse=false(In one to many) 的情况下,我无法在 sql 查询中找到任何更改。

所以我的问题是在 cascade = none 的情况下 inverse=true 究竟做了什么。

4

1 回答 1

0

cascadeinverseae 正交概念。

inverse简单地说,关联是双向的,由关联的另一端映射。它使另一方成为协会的所有者。

一个关联只有一方是所有者方,Hibernate 在持久化时只考虑所有者方。这意味着如果一个实体a有一组包含b1,b2和的b3B,但这些 B 实例都没有a作为它们的父对象引用,那么 Hibernate 将不会保持关联,因为所有者方 (B) 说:我没有链接到任何父母A。

于 2012-12-20T12:29:15.140 回答