jpa实体@ManyToOne @OneToMany无限递归方式
目录
- jpa实体@ManyToOne @OneToMany无限递归
- 问题描述
- 解决办法
- @OneToMany和@ManyToOne要素
jpa实体@ManyToOne @OneToMany无限递归
问题描述
Cannot call sendError() after the response has been committed
解决办法
在属性上添加注释
@JsonBackReference // data to json 和 JsonIgnore一样 // @JsonManagedReference // data to json 会被序列化 // @JsonIgnore // 直接忽略子实体 private Collection<ArticleEntity> articlesById;
@JsonIgnore
序列化和反序列化过程中 都会忽略这个属性
@JsonManagedReference
正常序列化 反序列化
@JsonBackReference
序列化data to json过程中 ,会忽略这个属性
@OneToMany和@ManyToOne要素
cascade
一的一方一般用: cascade = CascadeType.ALL
多的一方不用设置,默认不级联
fetch
默认是lazy还是eager啊
mappedby
或者joinColumn
一的一方用mappedby
多的一方用joinColumn
orphanRemove
一的一方用这个: orphanRemove=true
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
SpringBoot JPA懒加载失效的解决方案(亲测有效)
SpringBoot JPA懒加载失效 使用springBoot JPA 对两个实体类进行双向关联,并设置了懒加载,如下: 然后在查询后用到了roles,会报错, 解决办法如下: 1. 在配置文件中加入: spring.jpa.properties.hibernate.enable_lazy_load_no_trans =true 2. 如果你是在SpringBoot的测试类 中使用报错,则在方法上加入@Transactional注解 在百度查询时发现有人说 修改该配置: spring.jpa.
-
JPA的多表复杂查询的方法示例
最近工作中由于要求只能用hibernate+jpa 与数据库进行交互,在简单查询中,jpa继承CrudRepository接口 ,然后利用jpa的方法命名规范进行jpql查询,然而在进行复杂查询时,需要继承JpaSpecificationExecutor接口 利用Specification 进行复杂查询,由于我自己就遇到了这一问题,查了好多资料,虽然有方法,但是都没有一个详细的讲解,以至于知道方法而不能很好的利用jpa复杂查询的方便之处.我将举几个栗子,来详细的说一下我自己在使用jpa多表复杂查
-
spring jpa ManyToMany原理及用法详解
1.java和jpa 中所有的关系都是单向的.这个关系数据库不同,关系数据库,通过外键定义并查询,使得反向查询总是存在的. 2.JPA还定义了一个OneToMany关系,它与ManyToMany关系类似,但反向关系(如果已定义)是ManyToOne关系. OneToMany与JPA中ManyToMany关系的主要区别在于,ManyToMany总是使用中间关系连接表来存储关系, OneToMany可以使用连接表或者目标对象的表引用中的外键源对象表的主键. @OneToMany(cascade =
-
jpa实体@ManyToOne @OneToMany无限递归方式
目录 jpa实体@ManyToOne @OneToMany无限递归 问题描述 解决办法 @OneToMany和@ManyToOne要素 jpa实体@ManyToOne @OneToMany无限递归 问题描述 Cannot call sendError() after the response has been committed 解决办法 在属性上添加注释 @JsonBackReference // data to json 和 JsonIgnore一样 // @JsonManagedRefer
-
Java 互相关联的实体无限递归问题的解决
目录 Java 互相关联的实体无限递归 在Jackson2.0以前的解决办法是 好好理解Java中的递归 递归的思想 递归的条件要素 递归的算法结构 递归实战举例 小结一下吧 Java 互相关联的实体无限递归 今天在测试的时候出现了一个bug,在把关联实体序列化返回的过程中报错了,提示 Caused by: java.lang.StackOverflowError: null 这个是堆栈溢出错误,根据错误线索查找,最后发现Column和Table实体互相关联,也就是说 Column实体中有Tab
-
SpringDataJPA实体类关系映射配置方式
目录 SpringDataJPA 1.单向一对一映射 2.双向一对一映射 3.单向一对多映射 4.双向一对多映射 5.单向多对一映射 6.双向多对一映射 7.单向多对多映射 8.双向多对多映射 SpringDataJPA //FetchType.LAZY:懒加载,加载一个实体时,定义懒加载的属性不会马上从数据库中加载 //FetchType.EAGER:急加载,加载一个实体时,定义急加载的属性会立即从数据库中加载 //cascade = CascadeType.ALL 表示所有情况下均进行关联操
-
一文带你掌握JPA实体类注解
目录 基本注解 @Entity @Table @Basic(未加注解的默认注解) @Transient @Column @Id @GeneratedValue @GenericGenerator 其他注解 @Enumerated @Temporal @DynamicInsert.@DynamicUpdate @Access 复合主键 @EmbeddedId + @Embeddable @IdClass @Embedded + @AttributeOverride 实体间关联关系 @OneToOn
-
解决Spring Data Jpa 实体类自动创建数据库表失败问题
目录 Spring Data Jpa 实体类自动创建数据库表失败 找了半天发现是一个配置的问题 可能导致JPA 无法自动建表的问题汇总 1.没加@Entity或引错Entity所在包 2.jpa配置中ddl-auto未设置update 3.实体类的包不是启动程序所在包的子包 4.mysql配置问题 5.依赖不全 6.实体类间关系错误 7.启动类注解问题 8.其他问题 Spring Data Jpa 实体类自动创建数据库表失败 先说一下我遇到的这个问题,首先我是通过maven创建了一个spring
-
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
分享一下刚遇到的一个小问题,我有一段类似于这样的python代码: 复制代码 代码如下: # coding: utf-8 class A(object): @property def _value(self): # raise AttributeError("test") return {"v": "This is a test."} def __getattr__(self, key): p
-
php通过递归方式复制目录和子目录的方法
本文实例讲述了php通过递归方式复制目录和子目录的方法.分享给大家供大家参考.具体实现方法如下: <?php function recurse_copy($src,$dst){ $dir = opendir($src); @mkdir($dst); while(false !== ( $file = readdir($dir)) ) { if (( $file != '.' ) && ( $file != '..' )) { if ( is_dir($src . '/' . $fil
-
如何使用递归和非递归方式反转单向链表
问题:给一个单向链表,把它从头到尾反转过来.比如: a -> b -> c ->d 反过来就是 d -> c -> b -> a . 分析:假设每一个node的结构是: 复制代码 代码如下: class Node { char value; Node next;} 因为在对链表进行反转的时候,需要更新每一个node的"next"值,但是,在更新 next 的值前,我们需要保存 next 的值,否则我们无法继续.所以,我们需要两个指针分别指向前一个节点
-
PHP使用递归方式列出当前目录下所有文件的方法
本文实例讲述了PHP使用递归方式列出当前目录下所有文件的方法.分享给大家供大家参考.具体实现方法如下: <?phpfunction filelist($pathname,$i){//定义一个filelist函数 $dir=opendir($pathname); while(($file=readdir($dir))!== false){ $fname=$pathname."/".$file; if(is_dir($fname)&&a
-
sql server使用公用表表达式CTE通过递归方式编写通用函数自动生成连续数字和日期
问题: 在数据库脚本开发中,有时需要生成一堆连续数字或者日期,例如yearly report就需要连续数字做年份,例如daily report就需要生成一定时间范围内的每一天日期. 而自带的系统表master..spt_values存在一定的局限性,只是从0到2047(验证脚本:select * from master..spt_values b where b.type = 'P'),也不能直接生成连续日期. 可能大部分人会想到一个笨办法,通过while循环去逐条插入数据到临时表,每次数字加1
随机推荐
- asp下正则实现URL自动链接的一个函数
- node.js+Ajax实现获取HTTP服务器返回数据
- Python中除法使用的注意事项
- linux环境apache多端口配置虚拟主机的方法深入介绍
- go语言实现sqrt的方法
- asp下计算分页的几种方法
- Android滚轮选择时间控件使用详解
- 使用php判断服务器是否支持Gzip压缩功能
- javascript动态添加、修改、删除对象的属性与方法详解
- javascript textContent与innerText的异同分析
- jQuery学习笔记之jQuery原型属性和方法
- 通过IP安全策略 WIN2003禁止PING
- java 多态性详解及常见面试题
- Android4.4 WebAPI实现拍照上传功能
- PHP 模拟登陆MSN并获得用户信息
- 文件遍历排序函数
- Android 仿微博的点赞功能的实现原理(持续点赞再取消)
- java网络爬虫连接超时解决实例代码
- 易语言制作酷狗付费音乐解析下载工具
- Android WorkManager浅谈