spring数据2 findById与getOne之间的区别

时间:2018-03-16 10:53:50

标签: java hibernate spring-boot spring-data spring-data-jpa

将我的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()

0 个答案:

没有答案