1.hibernate默认懒加载无效?
hibernate默认对所有关联关系使用懒加载,但是在springboot使用的过程中,发现多对一,一对一的时候并未实现懒加载,具体问题请看这篇文章
2.为什么不使用fetch = FetchType.EAGER或fetch = FetchType.Lazy?
单独使用以上两种方式,有很大局限,该设置是写死的。对所有查询都返回一致的关联内容,问题是有些查询需要,有些查询不需要这些关联内容。都用迫切加载造成浪费,都有懒加载又无法满足一定时期的需要,比如使用缓存时。
3.使用entityGraph有什么问题?
entityGraph 可以是我们自定义查询内容,解决2中的问题。
不过在使用中发现,对于已经设定或默认设定为迫切加载的关联关系,依然会在转化为json时,使用懒加载加载出对象,这样一来跟我们的需求违背了。
解决办法是,将所有关联关系都设置为懒加载。然后将需要的内容通过entityGraph查询出来。
4.使用entityGraph实体的基本变量无论怎么设置,都会被查询出来?
这个据说会在hibernate6.x版本修复。。。