首页 > Web开发 > 详细

Hibernate与Jackson

时间:2016-10-28 15:55:40      阅读:222      评论:0      收藏:0      [点我收藏+]

当有一对多,多对一等关联关系时,用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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!