代码之家  ›  专栏  ›  技术社区  ›  Pasha

mappedby和cascadeType.all有什么区别?[副本]

  •  0
  • Pasha  · 技术社区  · 6 年前

    这个问题已经有了答案:

    我正在学习Hibernate并面临一个问题:两者之间的区别是什么? mappedBy CascadeType.ALL ?

    我们使用 映射者 在拥有的方面,为了消除过度的持久性。例如,使用 映射者 我们可以替换

    a.addB(b);
    b.setA(a);
    

    具有

    a.addB(b);
    

    在A和B之间的一对多关系,以及B和A之间的多对一关系的情况下(双向)。

    为什么我们需要 CascadeType 在这种情况下?

    1 回复  |  直到 6 年前
        1
  •  2
  •   cype    6 年前

    这个 CascadeType 选项告诉Hibernate在A上执行时在B上也要执行哪些操作。
    例如,如果您在没有设置的情况下 CascadeType.Persist ,b不会被持久化。
    这个 mappedBy 另一方面,选项创建了一个双向关系,a由b表中的一个外键表示。
    如果你真的需要 CascadeType.ALL 取决于您的用例,它允许您将A和B之间的关系看作是一个组合,拥有B。