Gson gson = new GsonBuilder().create();
MerchantAdapter adapter=new MerchantAdapter();
adapter.setMerchantList(list);
adapter.setStatus(“0”);
print(gson.toJson(adapter));
运行到最后一句的时候报错:
java.lang.UnsupportedOperationException: Attempted to serialize java.lang.Class: org.hibernate.proxy.HibernateProxy. Forgot to register a type adapter?
报错原因:
查询的那个实体类中肯定有一对多的关系,hibernate 默认是使用的延迟加载,不会查出多的那一方,而是返回一个代理,只有实际使用的时候才会去查。所以查出来的对象里面有代理,Gson 识别不了。
求指导决方案:
最好有源码
MerchantAdapter adapter=new MerchantAdapter();
adapter.setMerchantList(list);
adapter.setStatus(“0”);
print(gson.toJson(adapter));
运行到最后一句的时候报错:
java.lang.UnsupportedOperationException: Attempted to serialize java.lang.Class: org.hibernate.proxy.HibernateProxy. Forgot to register a type adapter?
报错原因:
查询的那个实体类中肯定有一对多的关系,hibernate 默认是使用的延迟加载,不会查出多的那一方,而是返回一个代理,只有实际使用的时候才会去查。所以查出来的对象里面有代理,Gson 识别不了。
求指导决方案:
最好有源码
解决方案
100
好像是得用spring延长session吧,本人也有过这问题,后来把外键都去了改用关系表了。