在使用SpringData 或者 Hibernate过程中基本上都会遇到懒加载异常的一些问题! 操作级联或者复杂的隐射关系的时候会报错!
SpringBoot 项目中大致可以有五六种解决方案

解决方案

  1. 关闭 LazyInitialization, 将 fetch 设成 eager, 可以在配置文件,也可注解
  2. 在 spring boot 的配置文件 application.properties 添加 spring.jpa.open-in-view=true,yml 同理
  3. 用 spring 的 OpenSessionInViewFilter
  4. 在 spring boot 的配置文件 application.properties 添加 spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true

但是上述方案并不一定能成功,而且 懒加载这样的话, 性能上也有所欠缺!所以或许可以对个别类上关闭 lazy
5. 在出问题的实体类上加 @Proxy(lazy = false)

PS: 那么有没有一种方法不关闭懒加载, 上配置(实际上这是一个反模式)
参考链接

spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

脸朝大海, 春暖花开 ----江大脸