onetomany-Hibernate中@ManyToOne与@OneToMany注解查询结果用gson序列化出现循环引用问题

问题描述

Hibernate中@ManyToOne与@OneToMany注解查询结果用gson序列化出现循环引用问题

首先,我确定我遇到的问题在baidu没有找到解决方案.
现有2个表Customer,Account两个表,他们之间是一对多的关系 , 一个客户有多个账户.定义2个实体类如下:

public class Customer implements Serializable{
    private String custId;
    .......
    private Set<Account> accounts = new HashSet<Account>(0);
    @OneToMany(cascade==CascadeType.ALL,mappedby="customer")
    public Set<Account> getAccounts{ .... }
}

public class Account implements Serializable{
    private String accountId;
    ....
    private Customer customer;
    @ManyToOne
    @JoinColumn(name="customerId")
    public Customer getCustomer{ .... }
}

现在想通过hql查询所有客户号为1的账号
hql = "from Account t where t.customerId='1'"
利用gson把查询的所有账户记录序列化为json字符串
运行后报异常,异常信息为 发现存在循环引用
circular reference found:.....
请问些问题该如何解决?

解决方案

时间: 2016-05-27

onetomany-Hibernate中@ManyToOne与@OneToMany注解查询结果用gson序列化出现循环引用问题的相关文章

Hibernate中@ManyToOne与@OneToMany注解查询结果用gson序列化出现循环引用问题

问题描述 首先,我确定我遇到的问题在baidu没有找到解决方案.现有2个表Customer,Account两个表,他们之间是一对多的关系,一个客户有多个账户.定义2个实体类如下:publicclassCustomerimplementsSerializable{privateStringcustId;.......privateSet<Account>accounts=newHashSet<Account>(0);@OneToMany(cascade==CascadeType.AL

关于hibernate中多个OneToMany情况如何设计映射关系

问题描述 标题说的不够清楚,具体是这样的:有一个附件表,一个用户表,一个课程表,一个实验表.一个附件属于某个用户的某个课程的某个实验,但是一个用户可以有多个附件,一个课程也可以有多个附件,一个实验也能有多个附件.所以就成了:public class Attachment {@ManyToOne //用户public User user;@ManyToOne //课程public Course course; //实验@ManyToOnepublic Task task;}感觉这样设计初始化时需要

小谈Hibernate中的HQL与QBC查询

最早接触Hibernate是在2004年,当时怀着忐忑和不安的心情来学习这门技术.经过这几年的使用和研 究,也积累了一定的经验,下面就HQL和QBC查询来谈一下我从工作中得到的一些总结. 本文不会讲什么是Hibernate.什么是ORM.更不会谈怎样使用HQL与QBC.本文的目的是让大家对平常 使用最多,也是最广泛的与数据库打交道的两种方式,有一个新的认识. 恩,如果你还不知道Hibernate,大象建议你先去学一下再来看本文,如果你已经是这方面的高手,大 可以关掉浏览器,千万不要因为本人的愚见

JavaScript中的内存泄露模式:在JavaScript应用程序中处理循环引用

如果您知道内存泄漏的起因,那么在 JavaScript 中进行相应的防范就应该相当容易.在这篇文章中,作者 Kiran Sundar 和 Abhijeet Bhattacharya 将带您亲历 JavaScript 中的循环引用的全部基本知识,向您介绍为何它们会在某些浏览器中产生问题,尤其是在结合了闭包的情况下.在了解了您应该引起注意的常见内存泄漏模式之后,您还将学到应对这些泄漏的诸多方法. JavaScript 是用来向 Web 页面添加动态内容的一种功能强大的脚本语言.它尤其特别有助于一些日

block使用小结、在arc中使用block、如何防止循环引用(zz)

标签:  __block   __weak   arc   self   cfgetretaincount 分类: iOS zz from http://www.cnbluebox.com/?p=255 引言 使用block已经有一段时间了,感觉自己了解的还行,但是几天前看到CocoaChina上一个关于block的小测试主题: [小测试]你真的知道blocks在Objective-C中是怎么工作的吗?,发现竟然做错了几道, 才知道自己想当然的理解是错误的,所以抽时间学习了下,并且通过一些测试代

Java Hibernate中使用HQL语句进行数据库查询的要点解析_java

一.实体对象查询 实体对象查询是hql查询的基础,作为一种对象查询语言,在查询操作时和sql不同,查询字符串中的内容要使用类名和类的属性名来代替.这种查询方法相对简单,只要有SQL功底,使用hql是很简单的,但是有一些问题需要注意,就是查询获取数据不是目的,需要考虑的是如何编写出高效的查询语句,这才是讨论的重点. 1.N+1问题 (1)什么是N+1问题在刚听到这个名词时疑惑可能是有的,以前根本就没有听过N+1问题,那么它是指什么呢?N+1指的是一张表中有N条数据,那么在获取这N条数据时会产生N+

java-jpa配置@ManyToOne和@OneToMany

问题描述 jpa配置@ManyToOne和@OneToMany @Entity @Table(name = "ba_user", catalog = "GONGYOU") public class User implements java.io.Serializable{ private String userId;//主键 @Id @GeneratedValue(generator = "UIDGenerator") @GenericGener

hibernate可不可以根据一个实体类查询出数据库中是否存在该记录

问题描述 hibernate可不可以根据一个实体类查询出数据库中是否存在该记录 需要判断一条记录是否已经在数据库中是否存在重复记录,用hql的话传入的参数会比较多

java-Java Hibernate中查询取值

问题描述 Java Hibernate中查询取值 Sql语法是这样的:![图片说明] 用Hibernate查询的语法不知道有没有问题呢? 还有最后一个问题: 我查询后的值存在query里面了, 我又要怎么取值呢? 求大家帮帮忙 解决方案 你那ID写里面就是死值了,要么用"?"代替,要么用 "+ +" 抱起来,哪有你那么写的 解决方案二: query.list()吧,然后看返回值是什么类型就用什么类型去接收就OK了.推荐看看这个先,里面有你想要的内容:http://z