spring boot 多线程 could not initialize proxy - no Session 异常解决

场景:

在controller里面调用多线程,多线程中有获取对象中的对象(已配置懒加载),结果报could not initialize proxy - no Session。

 

第一个想到的就是 openSessionInView,网上找了一下spring boot如何开启,于是就试了下面的方式,

配置文件加

  spring.jpa.open-in-view=true,

启动类加

  @Bean
  public OpenEntityManagerInViewFilter openEntityManagerInViewFilter(){
    return new OpenEntityManagerInViewFilter();
  }

 

结果都不顶用

 最后实在没有办法,想到在controller里面get一次要懒加载的实体,结果成了,但总感觉不是最完美的解决方案,又找了很久,在国外的一篇文章中找到线索。

 试试在service层的查询方法上面加上@Transactional(readOnly=true)  注解,结果成了,大喜~~~

 

posted @ 2018-12-12 14:27  ~木木~  阅读(1244)  评论(0编辑  收藏  举报