hibernate+jpa+entityGraph实现懒加载的问题及解决方案

1.hibernate默认懒加载无效?

hibernate默认对所有关联关系使用懒加载,但是在springboot使用的过程中,发现多对一,一对一的时候并未实现懒加载,具体问题请看这篇文章

2.为什么不使用fetch = FetchType.EAGER或fetch = FetchType.Lazy?

单独使用以上两种方式,有很大局限,该设置是写死的。对所有查询都返回一致的关联内容,问题是有些查询需要,有些查询不需要这些关联内容。都用迫切加载造成浪费,都有懒加载又无法满足一定时期的需要,比如使用缓存时。

3.使用entityGraph有什么问题?

entityGraph 可以是我们自定义查询内容,解决2中的问题。
不过在使用中发现,对于已经设定或默认设定为迫切加载的关联关系,依然会在转化为json时,使用懒加载加载出对象,这样一来跟我们的需求违背了。
解决办法是,将所有关联关系都设置为懒加载。然后将需要的内容通过entityGraph查询出来。

4.使用entityGraph实体的基本变量无论怎么设置,都会被查询出来?

这个据说会在hibernate6.x版本修复。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值