hibernate对象转换成json的时候报错java.lang.reflect.InvocationTargetException

框架: hibernate3

转换json类库:net.sf.json

在使用以下方法转换json时,报错java.lang.reflect.InvocationTargetException

JSONArray.fromObject(list);

debug后发现只有list中有的对象是hibernate懒加载对象的时候,就会出该问题。hibernate的懒加载对象,在转换json时,会访问到其字段,此时又会去数据库查询获取相关字段。在debug中也看得到涉及到了jdbc等对象,导致出了该问题。

上网参考到有如下处理方式:

JsonConfig jc = new JsonConfig();
jc.registerJsonValueProcessor(Date.class, SysCommon.DATE_JSON_PROCESSOR_YMD);
//防止转换hibernate懒加载对象出问题
jc.setExcludes(new String[]{"handler","hibernateLazyInitializer"});
JSONArray.fromObject(tss, jc);

后面会再找下有没有其他解决方法。

发布了60 篇原创文章 · 获赞 5 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_40085888/article/details/104782672
今日推荐