Gson与Hibernate结合使用会出现的问题
2015-12-10 16:26
246 查看
使用Hibernate来查找数据的时候,会因为延迟加载的问题,导致读取到的实体类不是一个完整的实体,如配置了多对一或多对多的映射的时候,对应的一方不会随之加载,而是在用到的时候去加载,这就导致用Gson转化实体类的时候,无法获取其属性,出现错误:
解决方法如下:
使用Gson的GsonBuilder构造方法,并利用注解忽略不需要的属性。
如:
这样Gson在转换的时候就会将books属性忽略掉,只输出id属性。
但是还有一个问题没有弄清楚,就是如果确实需要关联对象的时候,这种方法就不能使用了,需要一个代理类的转换方法,暂时还不会,以后再写。
java.lang.UnsupportedOperationException: Attempted to serialize java.lang.Class: org.hibernate.proxy.HibernateProxy. Forgot to register a type adapter? at com.google.gson.internal.bind.TypeAdapters$1.write(TypeAdapters.java:67)
解决方法如下:
使用Gson的GsonBuilder构造方法,并利用注解忽略不需要的属性。
如:
<span style="font-size:18px;">@Expose private int id; private List books;</span>
这样Gson在转换的时候就会将books属性忽略掉,只输出id属性。
<span style="font-size:18px;">GsonBuilder builder = new GsonBuilder(); builder.excludeFiledWithoutExponseAnnotation(); Gson gson = builder.create(); String result = gson.toJson(object);</span>
但是还有一个问题没有弄清楚,就是如果确实需要关联对象的时候,这种方法就不能使用了,需要一个代理类的转换方法,暂时还不会,以后再写。
相关文章推荐
- HDU 1754 区间最大值 (线段树)
- SSE(Server-Send Event):服务器推送数据的新方式
- iOS 学习日志:调用相机拍照获得图片旋转问题
- Java IO流详解
- pc上的hosts 移植到 android上
- CentOS 安装 MRTG 软件完成后的 403 Forbidden(转载)
- SaltStack管理从这里开始
- [MD学习]使用ActionBar+DrawableLayout+Palette打造侧滑UI
- Android 异步加载图片,使用LruCache和SD卡或手机缓存(使用线程池下载图片)
- 信息安全与密码学5-RSA算法的介绍
- php封装redis负载均衡类
- kettle-6.0从MySQL中读取数据并写入MongoDB的教程
- Android开发博客_引子
- 黑马程序员————————多线程(死锁的原理)
- Mybatis 大数据量的批量insert解决方案
- 前端开发者都应知道的 jQuery 小技巧
- 01背包
- 启动工程时总会报一些奇葩的问题,Failed to read candidate component class,Caused by: java.lang.IncompatibleClassChang
- shell之test
- 图片加载出来了才显示。