Hibernate5.2-5.3版本的ManyToOne、OneToOne的延迟加载(fetch=Lazy)失效

项目使用springboot的1.5.19版本进行开发,里面使用到JPA,而springboot这个版本自带的JPA实现是Hibernate的5.0.12版本。

这个版本里面的延迟加载是没有问题的,当你设置 fetch = FetchType.LAZY 时,关联的对象在你没有使用的时候,是不会发出sql的。

但升级了springboot的2.1.3后,依赖的Hibernate已经去到5.3.7版本了。这时候延迟加载就失效了,就算只是查询一个字段,也会再发多一条关联对象的SQL出来。

这个问题,在升级Hibernate5.4.2版本后是解决了的。

而对于使用springboot 2.1.3的话,需要先排除掉spring自身加载的Hibernate版本,自己替换成Hibernate5.4.2版本才可以。

不知道有没有人遇到这问题,本人测试,Hibernate5.2.x时候就已经出现了,但好像一直没有修复。

相关推荐