文章详情页
SpringBoot JPA懒加载失效的解决方案(亲测有效)
浏览:209日期:2023-02-19 18:55:53
SpringBoot JPA懒加载失效
使用springBoot JPA 对两个实体类进行双向关联,并设置了懒加载,如下:

然后在查询后用到了roles,会报错,

1. 在配置文件中加入:
spring.jpa.properties.hibernate.enable_lazy_load_no_trans =true
2. 如果你是在SpringBoot的测试类 中使用报错,则在方法上加入@Transactional注解
在百度查询时发现有人说 修改该配置: spring.jpa.open-in-view=true ,经测试,该项配置默认就是true,并且没有用。
JPA懒加载引起的bug自己闲暇用JPA写了个ORM操作的练习,发现一个诡异的问题。
如下图
1:读取的产品product的实际库存stock是20,冻结库存frozenStock是0;
2:减少该产品实际库存5,冻结库存+5;
3:重新查询该产品
问题:两个单元校验,发现实际算出来的库存差值不是5是0!博主通过查询商品信息findProductById()方法得到答案。如下图,调用方法返回的实体类product的属性都是null,F7进入调试才去查询产品的信息,查完之后才打印产品的名称,即类的'懒加载'。所以在步骤1之后,步骤2修改了库存,重新读取product的库存已经是扣减过的15了。
解决:在实体类上加上@Proxy(lazy = false)取消懒加载,直截了当(暂时没想到别的)



以上为个人经验,希望能给大家一个参考,也希望大家多多支持好吧啦网。
标签:
Spring
相关文章:
1. Django中如何使用Channels功能2. jsp中sitemesh修改tagRule技术分享3. IDEA下因Lombok插件产生的Library source does not match the bytecode报错问题及解决方法(亲测可用)4. docker容器调用yum报错的解决办法5. 使用 kind 和 Docker 启动本地的 Kubernetes环境6. idea设置自动导入依赖的方法步骤7. IntelliJ IDEA导出项目的方法8. Docker究竟是什么 为什么这么流行 它的优点和缺陷有哪些?9. Python通过zookeeper实现分布式服务代码解析10. 关于html嵌入xml数据岛如何穿过树形结构关系的问题
排行榜

网公网安备