码迷,mamicode.com
首页 > Web开发 > 详细

Hibernate与Jackson

时间:2016-10-28 15:58:17      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:hibernate   json   jackson   死循环   jsonbackreference   

当有一对多,多对一等关联关系时,用Hibernate查询并以Jackson转成Json


比如持久化类User

public class User implements java.io.Serializable{
    private string id;
    private Set<Usertorole> usertoroles=new HashSet<Usertorole>(0);
    //getter setter...
}


其Hibernate配置文件User.hbm.xml

<id name="id" type="java.lang.String">
    <column name="ID" length="10"/>
    <generator class="assigned"></generator>
</id>
<set name="usertoroles" table="USERTOROLE" inverse="true" lazy="false" fetch="select">
    <key>
        <column name="ID"/>
    </key>
    <one-to-many class="com.xxx.entity.Usertorole"/>
</set>


以及持久化类Usertorole

public class Usertorole implements java.io.Serializable{
    private string id;
    private User user;
    //getter setter...
}


由User.hbm.xml可知,User类通过一对多与Usertorole类关联,而为了能取到Usertorole集合的值,还设置了

lazy="false"

运行时报错,死循环,等待很长时间才溢出停掉。


这时Jackson的注解就要发挥作用了。


在Usertorole类的User属性之上加上注解@JsonBackReference

public class Usertorole implements java.io.Serializable{
    private string id;
    @JsonBackReference
    private User user;
    //getter setter...
}

再运行就OK了。这是为了防止这种无限循环。

本文出自 “树下野兽” 博客,请务必保留此出处http://shuxiayeshou.blog.51cto.com/4452347/1866766

Hibernate与Jackson

标签:hibernate   json   jackson   死循环   jsonbackreference   

原文地址:http://shuxiayeshou.blog.51cto.com/4452347/1866766

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!