【bug记录】jpa 解决org.hibernate.lazyinitializationexception could not initialize proxy - no session
前言
最近开发项目比较忙,Spring Cloud的笔记得稍稍放放了,下午出来个bug,恶心的不行,功能很简单,也没有什么级联或复杂的映射关系,就是一直在报三个异常
Caused by: com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.shunneng.core.web.rest.util.Result["data"]->com.shunneng.flup.web.rest.dto.SaveFlupDTO["flupForm"]->com.shunneng.flup.domain.FlupForm_$$_jvst158_3["handler"])
2018-05-14 16:54:44,571 ERROR XNIO-2 task-3 c.s.c.w.r.e.ExceptionTranslator:159 - JsonMappingException: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain:
org.hibernate.lazyinitializationexception could not initialize proxy - no session
这些异常是最后的这个异常导致的,网上找了很多,都说是jpa或hibernate的延迟加载
搞的鬼,解决方法无非就是几种,分别贴出与各位分享之
正文
五个解决方案
1、关闭LazyInitialization
, 将fetch
设成eager
,可以在配置文件,也可注解
2、在spring boot
的配置文件application.properties
添加spring.jpa.open-in-view=true
,yml同理
3、用spring 的OpenSessionInViewFilter
4、在spring boot
的配置文件application.properties
添加spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
上述几种,因为用的是springboot项目,只能用注解比较方便,都没有成功,就不详写了。介绍下面的方法,我是在一个国外网站找到的
5、在出问题的实体类上加@Proxy(lazy = false)
这里copy下机翻,英语好的可以直接移步文章出处
有情况,当我们想要一个简单的解决方案时,并不关心性能方面的任何事情,例如为了测试或原型设计的目的。在这种情况下,您可以在应用程序中进行以下配置更改以避免此错误,但请记住,如果此代码进入生产环境,则预先初始化可能导致的影响。
如果您使用XML配置:将
default-lazy =“false”
添加到您的 元件
如果您使用注释配置:将@Proxy(lazy = false)
添加到所有实体类。这就是如何修复线程“main”中的异常
org.hibernate.LazyInitializationException:无法初始化代理 - 没有会话
。我们已经看到,这个错误主要出现在关闭连接并尝试访问未完全初始化的代理对象时。由于代理对象需要连接,因此可以将对象重新连接到会话,或者小心避免编写代码,这些代码访问未初始化的代理对象。避免
LazyInitializationException
的另一种方法是通过使用lazy =“false”
来禁用实体类的hibernate的懒惰初始化功能或者使用default-lazy =“false”
完全禁用它。由于性能原因,此解决方案不推荐用于生产用途,但可用于原型设计,测试和演示。当你从Hibernate 2.1升级到3.0时,如果你第一次看到这个错误,不要感到惊讶,因为这是Hibernate默认启用延迟初始化时的版本。如果您在任何其他场景中遇到此错误或尝试解决
“org.hibernate.LazyInitializationException:无法初始化代理 - 无会话”
,您也可以在此处发布错误和代码,我们可以一起看看。
2018-05-29 最新更新,有时候还有种出现这种问题的可能是,findOne方法等写成了getOne等……
本文仅作记录,写文帮助更多人,转载还望注明出处http://www.cnblogs.com/hellxz/p/9037597.html
【bug记录】jpa 解决org.hibernate.lazyinitializationexception could not initialize proxy - no session的更多相关文章
- jpa 解决org.hibernate.lazyinitializationexception could not initialize proxy - no session
org.hibernate.LazyInitializationException: could not initialize proxy [org.alan.entity.SysUser#1] - ...
- 解决org.hibernate.LazyInitializationException: could not initialize proxy - no Session懒载入问题
问题描写叙述: Struts Problem Report Struts has detected an unhandled exception: Messages: could not initia ...
- dubbo序列化hibernate.LazyInitializationException could not initialize proxy - no Session懒加载异常的解决
dubbo序列化,hibernate.LazyInitializationException could not initialize proxy - no Session懒加载异常的解决 转载声明: ...
- 总结懒加载的解决方法(全)org.hibernate.LazyInitializationException: could not initialize proxy - no Session
如下错误:org.hibernate.LazyInitializationException: could not initialize proxy - no Session 原因是懒加载的问题,因为 ...
- J2EE进阶(九)org.hibernate.LazyInitializationException: could not initialize proxy - no Session
org.hibernate.LazyInitializationException: could not initialize proxy - no Session 前言 在<many-to-o ...
- Hibernate和Spring整合出现懒加载异常:org.hibernate.LazyInitializationException: could not initialize proxy - no Session
出现问题: SSH整合项目里,项目目录结构如下: 在EmployeeAction.java的list()方法里将employees的list放入到request的Map中. EmployeeActi ...
- Exception 07 : org.hibernate.LazyInitializationException: could not initialize proxy - no Session
异常名称: org.hibernate.LazyInitializationException: could not initialize proxy - no Session 异常截图: 异常详情: ...
- 解决方案,org.hibernate.LazyInitializationException: could not initialize proxy - no Session
org.hibernate.LazyInitializationException: could not initialize proxy - no Session org.hibernate.pro ...
- 多表关联懒加载导致的org.hibernate.LazyInitializationException: could not initialize proxy - no Session
本来考虑的是懒加载,这样可以提高效率,不过由于时间紧急 把懒加载改为急加载临时解决 https://www.jianshu.com/p/89520964f458 自己管理session也可以 临时补丁 ...
随机推荐
- Java代码实现依赖注入
http://zhangjunhd.blog.51cto.com/113473/126545 这里将模仿Spring实现一种基于xml配置文件的依赖注入机制.文件中将实现3中注入,一是单值注入,包括i ...
- Devexpress VCL Build v2013 vol 13.2.4 发布
不说了,自己看吧. What's New in 13.2.4 (VCL Product Line) New Major Features in 13.2 What's New in VCL Pro ...
- 521. Longest Uncommon Subsequence I
static int wing=[]() { std::ios::sync_with_stdio(false); cin.tie(NULL); ; }(); class Solution { publ ...
- 2018.08.31 bzoj1419 Red is good(期望dp)
描述 桌面上有R张红牌和B张黑牌,随机打乱顺序后放在桌面上,开始一张一张地翻牌,翻到红牌得到1美元,黑牌则付 出1美元.可以随时停止翻牌,在最优策略下平均能得到多少钱. 输入 一行输入两个数R,B,其 ...
- hdu-1133
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1133 思路:有m个人拿50元的纸币,n个人拿100元的纸币门票价格是50元,要求每个售票员遇到100元 ...
- KindEditor解决上传视频不能在手机端显示的问题
KindEditor自带的上传视频生成的HTML代码为<embed>,在手机端并不支持.于是可以自己在控件里增加生成video标签相关代码. 参考https://www.jianshu.c ...
- flask_login
一.配置 对于登录系统,我们将会使用到两个扩展,Flask-Login 和 Flask-OpenID.在microblog.py中配置: Flask-OpenID 扩展需要一个存储文件的临时文件夹的路 ...
- Can not find the tag library descriptor for "/struts-tags"`
1.查看struts.xml路径是否错误,要放在src下, 2.缺少struts-tags.tld (1)查找方式: (2)找到此包,然后右键用解压缩文件打开. (3)然后你会看到很多的源码,找到红圈 ...
- Windows10+Python3+BeautifulSoup4 安装
用正则表达式来提取网页中的内容是相当麻烦的,这里介绍一个可以从HTML或XML文件中提取数据的Python库:Beautiful Soup.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的 ...
- hdu3853 LOOPS(概率dp) 2016-05-26 17:37 89人阅读 评论(0) 收藏
LOOPS Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 125536/65536 K (Java/Others) Total Su ...