gpt4 book ai didi

java - Hibernate 正在更新而不是插入,为什么?

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

我正在开始我的 Hibernate 冒险,所以请耐心等待 :)
我想对两个表进行映射,例如 A 和 B。关系 beetwen A 和 B 是一对多的。
我写了这个 hbm.xml 文件:

 <hibernate-mapping package="something">
<class name="A" table="A">
<id name="id" type="int" column="ID">
<generator class="native" />
</id>
<set name="setInA" sort="natural" cascade="all" lazy="false">
<key column="ANOTHER_ID"/>
<one-to-many class="B" />
</set>
</class>

<class name="B" table="B">
<id name="anotherId" type="int" column="ANOTHER_ID">
<generator class="native" />
</id>
</class>
</hibernate-mapping>

当然我也做了POJO类A和B。

现在,当我尝试这样做时:
A a = new A();
Set<B> set = new TreeSet<B>();
set.add(new B());
a.setSetInA(set);
session.save(a);

Hibernate 向表 A 插入新行,但(最糟糕的是)不是向 B 表插入新行,而是仅对 B 中不存在的行进行 SQL 更新。
谁能告诉我为什么会这样?我做错了什么?

最佳答案

您应该首先持久化 B 的对象,或者使用 Cascade 选项。

关于java - Hibernate 正在更新而不是插入,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6122849/

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