Spring Data - could not initialize proxy - no Session异常的一种解决方法

Spring Data - could not initialize proxy - no Session异常的一种解决方法

Scroll Down

在使用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