日期:2014-05-20  浏览次数:20634 次

hibernate n+1解决方法的疑问
有一个是说懒加载。但是懒加载只是延迟N的加载,实际上最后还是N+1。这有区别吗?另一个方法是直接写left join,这时如果一个实体有多个一对多的属性,是不是要把所有一对多都要left join写明吧。

------解决方案--------------------
懒加载是为了减少数据库的读取,如果你没明确取N,它是不会从数据库中读出来的。

如果你个一对多的实体,有时候只取一,有时候又要取多,那你就用懒加载,要取多的那里用join fetch

------解决方案--------------------
用 Fetch Joins ,就可解决n+1问题