gpt4 book ai didi

Hibernate Inverse 属性

转载 作者:行者123 更新时间:2023-12-04 11:29:42 25 4
gpt4 key购买 nike

我正在创建一对多的关系。所以,我有一个 parent 和一个 child 。级联属性设置为全部。

我想知道,如果我们考虑以下代码:

Parent p = (Parent) session.load(Parent.class, pid); 
Child c = new Child("child element");
p.addChild(c);
session.flush();
  • Q1) 如果父拥有关系,如 ,对于父 inverse=false,那么子元素添加是否会在数据库中更新?
  • Q2) 如果子元素拥有关系,如 ,对于父元素 inverse=true,那么子元素添加是否会在数据库中更新?
  • Q3) 就是否可以看到更新而言,谁拥有relationahsip 对上述代码没有影响?

  • 多谢

    最佳答案

    大小写反转 = false:

    在这种情况下,保存更新子级及其关系是父级的责任。因此,在您的示例中, child 将在数据库中更新。会有两个sql查询:1)插入子项。 2)用父ID的外键更新子。

    Case Inverse = true:

    在这种情况下,保存更新本身是 child 的责任。因此,在您的代码中,子项将保存在数据库中,但父项的外键将为空。只会执行一个 sql 查询,即插入子查询。要更新 parent 的外键,您需要手动保存 child 。

    Child child = new Child();
    child.setParent(parent);
    session.save(child);

    我认为,这些案例的答案解释了您的第三个问题的答案。

    希望这有帮助。

    关于Hibernate Inverse 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6423889/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com