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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • SpringBoot JPA懒加载失效的解决方案(亲测有效)

    SpringBoot JPA懒加载失效 使用springBoot JPA 对两个实体类进行双向关联,并设置了懒加载,如下: 然后在查询后用到了roles,会报错, 解决办法如下: 1. 在配置文件中加入: spring.jpa.properties.hibernate.enable_lazy_load_no_trans =true 2. 如果你是在SpringBoot的测试类 中使用报错,则在方法上加入@Transactional注解 在百度查询时发现有人说 修改该配置: spring.jpa.

  • spring jpa ManyToMany原理及用法详解

    1.java和jpa 中所有的关系都是单向的.这个关系数据库不同,关系数据库,通过外键定义并查询,使得反向查询总是存在的. 2.JPA还定义了一个OneToMany关系,它与ManyToMany关系类似,但反向关系(如果已定义)是ManyToOne关系. OneToMany与JPA中ManyToMany关系的主要区别在于,ManyToMany总是使用中间关系连接表来存储关系, OneToMany可以使用连接表或者目标对象的表引用中的外键源对象表的主键. @OneToMany(cascade =

  • JPA的多表复杂查询的方法示例

    最近工作中由于要求只能用hibernate+jpa 与数据库进行交互,在简单查询中,jpa继承CrudRepository接口 ,然后利用jpa的方法命名规范进行jpql查询,然而在进行复杂查询时,需要继承JpaSpecificationExecutor接口 利用Specification 进行复杂查询,由于我自己就遇到了这一问题,查了好多资料,虽然有方法,但是都没有一个详细的讲解,以至于知道方法而不能很好的利用jpa复杂查询的方便之处.我将举几个栗子,来详细的说一下我自己在使用jpa多表复杂查

  • 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

随机推荐