SpringBoot调用JpaRepository的getOne方法报错

欢迎查看Eetal的第二篇博客–JpaRepository02

报错信息

org.hibernate.LazyInitializationException: could not initialize proxy - no Session
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:155)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:268)
at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:73)
at com.ws.dataobject.ProductInfo_$$_jvst26a_2.getProductStatus(ProductInfo_$$_jvst26a_2.java)
at com.ws.service.impl.ProductInfoServiceImpl.offSale(ProductInfoServiceImpl.java:102)
at com.ws.service.impl.ProductInfoServiceImpl$$FastClassBySpringCGLIB$$f6542ae8.invoke()
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:685)
……

报错信息居然提示no Session实在是太坑了!

正解是因为在新版本(2.0)的SpriingBoot中,Jpa已经不支持getOne方法,只能使用findById(id).get()获取
而且笔者是在SpringTest环境中测试,一开始还以为是上下文没有装配对应的Bean…

更多精彩内容

请移步

个人主页: yangyitao.top