繁体   English   中英

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

[英]Hibernate collection lazy load strange behavior

我有一个很奇怪的问题,hibernate 没有任何原因地进行 UPDATE 查询。

我使用 Spring + 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;
} 

我在 Transactional DAO 中获得了 A 的实例,并在使用此方法后

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

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

当 Java 尝试获取迭代器 (listB.iterator()) 休眠时,请发出以下请求:

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

看来我发现了问题 我回到了 4.1.7.Final 版本,一切正常。

这个问题也在 5.0.0、4.3.5、4.2.12 版本中得到修复。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM