gpt4 book ai didi

java - Hibernate集合延迟加载奇怪的行为

转载 作者:太空宇宙 更新时间:2023-11-04 15:22:06 24 4
gpt4 key购买 nike

我有一个非常奇怪的问题,hibernate 无缘无故地进行 UPDATE 查询。

我使用 Spring + Hibernate。 hibernate 配置:

    <property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">create</prop>
<prop key="hibernate.enable_lazy_load_no_trans">true</prop>
<prop key="hibernate.connection.autocommit">false</prop>
</props>
</property>

我的实体:

@Entity
@Table(name = "a")
public class A {

@Id
@GeneratedValue
private int id;

@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "bId")
private List<B> list;

}

-----------------------

@Entity
@Table(name = "b")
public class B{

@GeneratedValue
@Id
private int id;

@Column
private int test;
}

我在事务 DAO 中获取 A 的实例,并在使用此方法后

A a = ... get from DAO
List<B> listB = a.getList();

for (B o : listB){
......
}

当 Java 尝试获取迭代器 (listB.iterator()) 时,hibernate 会发出此请求:

Hibernate: update b set bId=null where bId=?

最佳答案

看来我找到了problem 。我返回到版本 4.1.7.Final,一切正常。

该问题在 5.0.0、4.3.5、4.2.12 版本中也已修复。

关于java - Hibernate集合延迟加载奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20307562/

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