Hibernate与Jackson

当有一对多,多对一等关联关系时,用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了。这是为了防止这种无限循环。

时间: 2024-10-10 17:07:49

Hibernate与Jackson的相关文章

Maven搭建SpringMVC+Hibernate项目详解

前言 今天复习一下SpringMVC+Hibernate的搭建,本来想着将Spring-Security权限控制框架也映入其中的,但是发现内容太多了,Spring-Security的就留在下一篇吧,这篇主要搭建SpringMVC4.1.4和Hibernate4.3.8,之前也打了好多SpringMVC的,这部分已经非常的熟悉了,毕竟业开发过一年多SpringMVC的,这次持久层采用Hibernate,数据源采用c3p0,数据库暂采用MySQL,主要是想复习一下Hibernate.搭建Spring

Maven搭建SpringMVC+Hibernate项目详解 【转】

前言 今天复习一下SpringMVC+Hibernate的搭建,本来想着将Spring-Security权限控制框架也映入其中的,但是发现内容太多了,Spring-Security的就留在下一篇吧,这篇主要搭建SpringMVC4.1.4和Hibernate4.3.8,之前也打了好多SpringMVC的,这部分已经非常的熟悉了,毕竟业开发过一年多SpringMVC的,这次持久层采用Hibernate,数据源采用c3p0,数据库暂采用MySQL,主要是想复习一下Hibernate.搭建Spring

Maven搭建SpringMVC+Hibernate项目详解(转)

前言 今天复习一下SpringMVC+Hibernate的搭建,本来想着将Spring-Security权限控制框架也映入其中的,但是发现内容太多了,Spring-Security的就留在下一篇吧,这篇主要搭建SpringMVC4.1.4和Hibernate4.3.8,之前也打了好多SpringMVC的,这部分已经非常的熟悉了,毕竟业开发过一年多SpringMVC的,这次持久层采用Hibernate,数据源采用c3p0,数据库暂采用MySQL,主要是想复习一下Hibernate.搭建Spring

Spring+Springmvc+Hibernate环境搭建与配置

这里给出JavaWeb项目Spring+Springmvc+Hibernate框架环境的搭建与配置,方便以后快速创建项目.下面是以本人的一个项目为例给出的配置,不同项目具体的结构都是可以按一下结构完成的,至于配置内容则需要按照具体的项目需求更改部分内容.需要注意的是,本项目是以使用注解为前提完成的项目. 一.项目目录 首先说明一下,本项目是maven项目,采用Spring+Springmvc+Hibernate的框架,前端模板引擎采用thymeleaf,html代码存放在下面结构的templat

Maven搭建SpringMVC+Hibernate项目详解【转】

今天复习一下SpringMVC+Hibernate的搭建,本来想着将Spring-Security权限控制框架也映入其中的,但是发现内容太多了,Spring-Security的就留在下一篇吧,这篇主要搭建SpringMVC4.1.4和Hibernate4.3.8,之前也打了好多SpringMVC的,这部分已经非常的熟悉了,毕竟业开发过一年多SpringMVC的,这次持久层采用Hibernate,数据源采用c3p0,数据库暂采用MySQL,主要是想复习一下Hibernate.搭建SpringMVC

Maven整合Spring,Spring mvc4.1.6,Hibernate4.3.10项目搭建总结

先上详细的配置文件,在上说明,让大家看完例子后更能清晰的对项目有个认识. 该框架集合的功能模块主要包含以下功能包: guava AspectJ apache common log Spring Hibernate POI jackson oracle quartz 1,web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="

Spring 4支持的Java 8新特性一览

有众多新特性和函数库的Java 8发布之后,Spring 4.x已经支持其中的大部分.有些Java 8的新特性对Spring无影响,可以直接使用,但另有些新特性需要Spring的支持.本文将带您浏览Spring 4.0和4.1已经支持的Java 8新特性. Spring 4支持Java 6.7和8 Java 8编译器编译过的代码生成的.class文件需要在Java 8或以上的Java虚拟机上运行.由于Spring对反射机制和ASM.CGLIB等字节码操作函数库的重度使用,必须确保这些函数库能理解

项目启动部署时报错:java.lang.NoSuchMethodError

报错: ===================================================================================================== 项目启动部署报错: java.lang.NoSuchMethodError: org.springframework.util.ReflectionUtils.doWithLocalFields(Ljava/lang/Class;Lorg/springframework/util/Ref

org.codehaus.jackson.map.JsonMappingException: No serializer found for class org.hibernate.proxy.pojo.javassist.

2011-08-16 13:26:58,484 [http-8080-1] ERROR [core.web.ExceptionInterceptor] - org.codehaus.jackson.map.JsonMappingException: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to cre