加载中…
个人资料
刘维志
刘维志
  • 博客等级:
  • 博客积分:0
  • 博客访问:341,527
  • 关注人气:18
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

hibernate对象懒加载,json序列化失败

(2013-06-29 17:32:27)

今天用springMVC 

@ResponseBody 返回一个有懒加载对象的时候出现了错误,

网上查了下可以在pojo中生成一个构造函数,不包括我们的懒加载对象

 

 public News(int id, String newContent, Date addDate, Date updateDate, String addUser, String updateUser, int isFlag, String newsStaticUrl, int is_enable, String newsTitle, String newsDesc, int orderNumber) {
  this.id = id;
  this.newContent = newContent;
  this.addDate = addDate;
  this.updateDate = updateDate;
  this.addUser = addUser;
  this.updateUser = updateUser;
  this.isFlag = isFlag;
  this.newsStaticUrl = newsStaticUrl;
  this.is_enable = is_enable;
  this.newsTitle = newsTitle;
  this.newsDesc = newsDesc;
  this.orderNumber = orderNumber;
 }

 

 

然后hql查询时用:

 Query query = entityManager.createQuery("select new News(s.id,s.newContent,s.addDate,s.updateDate,s.addUser,s.updateUser,s.isFlag,s.newsStaticUrl," +
    "s.is_enable,s.newsTitle,s.newsDesc,s.orderNumber)
from"+sql.toString());

 

因为懒加载这个对象属性只是一个代理对象,如果json直接当作一个存在的属性去序列化就会出现错误,所以就只能这样了,当然还有其他办法吧

或者在class上加上

 @JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler"})
public class ProductPrice {

 

springMVC 返回json报500错误的话可以

 ObjectMapper mapper=new ObjectMapper();

   try {
    String jsonString=mapper.writeValueAsString(object);
    System.out.print(jsonString);
   } catch (JsonGenerationException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   } catch (JsonMappingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }

 

在后台序列化一下,看看报的错误是什么,然后再去网上查查错误的解决方法

 

 

 

 

 

 

 

 

 

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有