将我的Web应用程序从spring boot 1.5.10升级到spring boot 2.0.0后,在访问单个实体时遇到了一些运行时异常。
org.hibernate.LazyInitializationException:无法初始化代理 - 没有会话
我的存储库:
public interface MyRepository extends JpaRepository<MyEntity, Long> {
}
在我的一项服务中,我调用了spring数据1.x myRepository.findOne(id);
来获取单个实体。但是方法findOne(Long id)在spring数据2中删除了所以我不得不切换到另一种方法。
我找到JpaRepository#getOne(ID id);
将findOne
切换为getOne
后,所有测试都通过并且为绿色。但是在运行时我收到了上面提到的异常。 org.hibernate.LazyInitializationException
所以我再次搜索了合适的方法并找到了CrudRepository#findById(ID id)
这一次都很顺利,我很高兴,但现在问题是,为什么在使用org.hibernate.LazyInitializationException
时获得getOne()
?