解决hibernate 序列化死循环的问题
用ie8时,请求json,eclipse直接死机!!!!
调试时,可以用chrome,看到无限循环的报错。。。类似
{"empty":true,"total":4,"firstResult":0,"pageSize":10,"rows":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":[{"name":"admin","roles":[{"users":
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
User 与 Role 是hibernate的多对多的关系!!!!
jackson中的@JsonBackReference和@JsonManagedReference,以及@JsonIgnore均是为了解决对象中存在双向引用导致的无限递归(infinite recursion)问题。这些标注均可用在属性或对应的get、set方法中。
@JsonBackReference和@JsonManagedReference:这两个标注通常配对使用,通常用在父子关系中。@JsonBackReference标注的属性在序列化(serialization,即将对象转换为json数据)时,会被忽略(即结果中的json数据不包含该属性的内容)。@JsonManagedReference标注的属性则会被序列化。在序列化时,@JsonBackReference的作用相当于@JsonIgnore,此时可以没有@JsonManagedReference。但在反序列化(deserialization,即json数据转换为对象)时,如果没有@JsonManagedReference,则不会自动注入@JsonBackReference标注的属性(被忽略的父或子);如果有@JsonManagedReference,则会自动注入自动注入@JsonBackReference标注的属性。
@JsonIgnore:直接忽略某个属性,以断开无限递归,序列化或反序列化均忽略。当然如果标注在get、set方法中,则可以分开控制,序列化对应的是get方法,反序列化对应的是set方法。在父子关系中,当反序列化时,@JsonIgnore不会自动注入被忽略的属性值(父或子),这是它跟@JsonBackReference和@JsonManagedReference最大的区别。
解决hibernate 序列化死循环的问题的更多相关文章
- 解决hibernate中的懒加载(延迟加载)问题
解决hibernate中的懒加载(延迟加载)问题 我们在开发的时候经常会遇到延迟加载问题,在实体映射时,多对一和多对多中,多的一样的属性默认是lazy="true"(即,默认是 ...
- 解决Hibernate:could not initialize proxy - no Session(申明:来源于网络)
解决Hibernate:could not initialize proxy - no Session 地址:http://blog.csdn.net/chenssy/article/details/ ...
- 解决 hibernate cannot define positional parameter after any named parameters have been defined
解决 hibernate cannot define positional parameter after any named parameters have been defined 把模糊查询的 ...
- SSH项目web.xml文件的常用配置【struts2的过滤器、spring监听器、解决Hibernate延迟加载问题的过滤器、解决中文乱码的过滤器】
配置web.xml(struts2的过滤器.spring监听器.解决Hibernate延迟加载问题的过滤器.解决中文乱码的过滤器) <!-- 解决中文乱码问题 --> <filter ...
- 解决hibernate双向关系造成的一方重复执行SQl,或者死循环的问题
系统采用struts-json hibernate3. 在对关联表配置manytoone onetomany双向关联的时候,在执行一方的时候,会发现打印出来的SQL语句多执行了一次或者多次.经过调试, ...
- hibernate+spring mvc, 解决hibernate 对象懒加载 json序列化问题
引用地址 在使用Spring MVC时,@ResponseBody 注解的方法返回一个有懒加载对象的时候出现了异常,以登录为例: @RequestMapping("login") ...
- hibernate+spring mvc,解决hibernate对象懒加载,json序列化失败
在使用spring MVC时,@ResponseBody 注解的方法返回一个有懒加载对象的时候出现了异常,以登录为例: @RequestMapping("login") @Resp ...
- 解决Hibernate Write operations are not allowed in read-only mode的方法
错误信息: org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed i ...
- 解决Hibernate中不同包内有形同实体导致映射失败的问题
报错代码如下: Caused by: org.hibernate.DuplicateMappingException: duplicate import: Engin refers to both t ...
随机推荐
- Java中Collection、Map常用实现类研究分析
接口/实现类 描述 key是否可为null 为null是否报错 key是否重复 key重复是否报错 key是否和添加一致 是否线程安全 List 一组元素的集合 ArrayList 基于数组存储,读取 ...
- linux 查看io
有时系统卡,可能是io值使用满了导致 1.安装iostat yum install sysstat 2.查看io使用情况 iostat -dx 3.安装iotop yum install iotop ...
- Sublime Text2 常用快捷键总结
Ctrl+Tab 当前窗口中的标签页切换 Ctrl+Shift+D 复制光标所在整行,插入在该行之前 Ctrl+Shift+K 删除整行 Ctrl+Shift+/ 注释已选择内容 Ctrl+Shift ...
- webpack4基础配置
网页中常见的静态资源: js: .js .jsx .coffee .ts(TypeScript 类 C# 语言) css: .css .less .sass .scss Images: .jpg .p ...
- 深入理解vue 修饰符sync
[ vue sync修饰符示例] 在说vue 修饰符sync前,我们先看下官方文档:vue .sync 修饰符,里面说vue .sync 修饰符以前存在于vue1.0版本里,但是在在 2.0 中移除了 ...
- 【NOIP2016提高A组模拟9.9】运输妹子
题目 小轩轩是一位非同一般的的大农(lao)场(si)主(ji),他有一大片非同一般的农田,并且坐落在一条公路旁(可以认为是数轴),在他的农田里种的东西也非同一般--不是什么水稻小麦,而是妹子. 在小 ...
- 为什么second是秒也是第二?
起源 早期在西方,一小时分为 60 分钟.后来,科学发达了.文明进步了,人们认为一分钟太粗放了.必须划分得更细致,于是就把一分钟划分成 60 等分.由于是对时间的第二次划分,就将新的 60 等分的“单 ...
- js能否上传文件夹
文件夹上传:从前端到后端 文件上传是 Web 开发肯定会碰到的问题,而文件夹上传则更加难缠.网上关于文件夹上传的资料多集中在前端,缺少对于后端的关注,然后讲某个后端框架文件上传的文章又不会涉及文件夹. ...
- 配置文件:android:inputType参数类型说明
输入字符 android:inputType="none" --输入普通字符 android:inputType="text" --输入普通字符 andr ...
- 线程工具类ThreadUtils
package yqw.java.util; public class ThreadUtils { /** * showThreadInfo * * @return ...