net.sf.json.JSONException: Positioned Update not supported.

前端之家收集整理的这篇文章主要介绍了net.sf.json.JSONException: Positioned Update not supported.前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Caused by: java.sql.sqlException: Positioned Update not supported.
at com.MysqL.jdbc.sqlError.createsqlException(sqlError.java:910)
at com.MysqL.jdbc.ResultSet.getCursorName(ResultSet.java:1917)
at com.mchange.v2.c3p0.impl.NewProxyResultSet.getCursorName(NewProxyResultSet.java:545)

... 152 more

package:net.sf.json.JSONObject


原因:在SSH框架中,所有经由Hibernate持久化管理的对象自带一个handler属性如果你启用了Lazy加载,还会多出一个hibernateLazyInitializer的属性

而实体类之中是没有这个属性的,所以就需要先利用jsonConfig把这些不必要的属性给过滤掉,再转为JSON。

由于这个属性的存在,由Hibernate查询出来的对象在转化为JSON的时候会报上面的异常

解决方法:用JSONConfig过滤一下,在转换为JSON对象的时候不对该属性进行转换,这个方法也可以用来对不想进行JSON转换的属性进行过滤。

<pre name="code" class="java">JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes(new String[]{"handerler","hibernateLazyInitializer"});
String tmp = JSONObject.fromObject(object).toString();

 
jsonConfig.setExcludes <span style="font-family: Arial; background-color: rgb(255,255,255);">的作用是过滤不需要参与json序列化的类</span>

猜你在找的Json相关文章