Could not write content: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistL

来源:互联网 发布:matlab 稀疏矩阵转换 编辑:程序博客网 时间:2024/05/29 13:00
转换json的时候报错,用的jackson转json。

报错:

Could not write content: 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.allk.vo.CommonData["resultMap"]->java.util.HashMap["datas"]->java.util.ArrayList[0]->
com.allk.vo.TravelTransferVo["airport"]->com.allk.entity.airport.Airport_$$_jvst194_4b["handler"]); nested exception is 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.allk.vo.CommonData["resultMap"]->java.util.HashMap
["datas"]->java.util.ArrayList[0]->com.allk.vo.TravelTransferVo["airport"]->com.allk.entity.airport.Airport_$$_jvst194_4b["handler"])
 序列化的时候出错了。然后看到后面的马上就想到了是不是级联关系配置的时候没有忽略,导致死循环,去看了下,并不是。


hibernate延时加载
因为jsonplugin用的是Java的内审机制.hibernate会给被管理的pojo加入一个hibernateLazyInitializer属性,jsonplugin会把hibernateLazyInitializer也拿出来操作,并读取里面一个不能被反射操作的属性就产生了这个异常. 
然后在类型上面将hibernateLazyInitializer进行忽略。
我是添加的:@JsonIgnoreProperties(value = { "hibernateLazyInitializer", "handler" })
成功!

阅读全文
0 0
原创粉丝点击