当spring boot单独集成jpa,开启hibernate的懒加载机制时没有问题,然而再集成shiro后运行过程中就会报错could not initialize proxy - no Session。
针对此问题,在网上找到的比较合理的解决方案是增加openSessionInViewFilter,并保证此filter在shiroFilter前面。
@Bean public SessionFactory sessionFactory(@Qualifier("entityManagerFactory") EntityManagerFactory emf){ return emf.unwrap(SessionFactory.class); }注:此方案必须声明sessionFactory(上述声明过程不确定是否有问题)。
经过验证在spring boot中此方案未能解决问题(可能是我项目配置或者相关包版本原因,感觉应该是sessionFactory获取过程不对),最终找到解决方案是:
增加OpenEntityManagerInViewFilter。
问题得以解决。
感谢:https://blog.youkuaiyun.com/lzwglory/article/details/18655431