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

項目使用springboot的1.5.19版本進行開發,裏面使用到JPA,而springboot這個版本自帶的JPA實現是Hibernate的5.0.12版本。spring

這個版本里面的延遲加載是沒有問題的,當你設置 fetch = FetchType.LAZY 時,關聯的對象在你沒有使用的時候,是不會發出sql的。sql

但升級了springboot的2.1.3後,依賴的Hibernate已經去到5.3.7版本了。這時候延遲加載就失效了,就算只是查詢一個字段,也會再發多一條關聯對象的SQL出來。springboot

這個問題,在升級Hibernate5.4.2版本後是解決了的。測試

而對於使用springboot 2.1.3的話,須要先排除掉spring自身加載的Hibernate版本,本身替換成Hibernate5.4.2版本才能夠。fetch

不知道有沒有人遇到這問題,本人測試,Hibernate5.2.x時候就已經出現了,但好像一直沒有修復。code

相關文章
相關標籤/搜索