SpringBoot JPA懒加载失效的解决方案(亲测有效)

 更新时间:2021年08月03日 10:01:33   作者:熊熊爱绵羊  
这篇文章主要介绍了SpringBoot JPA懒加载失效的解决方案(亲测有效),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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)取消懒加载,直截了当(暂时没想到别的)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot整合RabbitMQ实现交换机与队列的绑定

    SpringBoot整合RabbitMQ实现交换机与队列的绑定

    这篇文章将通过几个实例为大家介绍一些SpringBoot中RabbitMQ如何绑定交换机(交换器)与队列,文中的示例代码讲解详细,感兴趣的可以了解一下
    2022-05-05
  • Java中&和&&的区别简单介绍

    Java中&和&&的区别简单介绍

    这篇文章主要介绍了Java中&和&&的区别,&&逻辑与||逻辑或  它们都是逻辑运算符,& 按位与|按位或它们都是位运算符,更多详细内容请需要的小伙伴了解下面文章内容
    2022-01-01
  • Java Poi 在Excel中输出特殊符号的实现方法

    Java Poi 在Excel中输出特殊符号的实现方法

    这篇文章主要介绍了Java Poi 在Excel中输出特殊符号的实现方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • SpringBoot整合Apache Pulsar教程示例

    SpringBoot整合Apache Pulsar教程示例

    这篇文章主要为大家介绍了SpringBoot整合Apache Pulsar教程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • windows10 JDK安装及配置环境变量与Eclipse安装教程

    windows10 JDK安装及配置环境变量与Eclipse安装教程

    这篇文章主要介绍了windows10 JDK安装及配置环境变量与Eclipse安装,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • 简单了解SpringMVC常用组件作用解析

    简单了解SpringMVC常用组件作用解析

    这篇文章主要介绍了简单了解SpringMVC常用组件作用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • java中ArrayList和LinkedList的区别详解

    java中ArrayList和LinkedList的区别详解

    这篇文章主要介绍了java中ArrayList和LinkedList的区别详解,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2021-01-01
  • 详解如何在低版本的Spring中快速实现类似自动配置的功能

    详解如何在低版本的Spring中快速实现类似自动配置的功能

    这篇文章主要介绍了详解如何在低版本的Spring中快速实现类似自动配置的功能,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • Java设计模式初识之备忘录模式详解

    Java设计模式初识之备忘录模式详解

    备忘录设计模式(Memento Design Pattern)也叫作快照(Snapshot)模式,主要用于实现防丢失、撤销、恢复等功能。本文将通过示例为大家介绍一些备忘录模式的定义与使用,需要的可以参考一下
    2022-11-11
  • 详解java中import的作用

    详解java中import的作用

    这篇文章主要介绍了java中import作用,import与package机制相关,这里先从package入手,再讲述import以及static import的作用。
    2021-04-04

最新评论