springboot整合jpa踩过的坑(二)

简介: springboot整合jpa踩过的坑(二)

一、org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: Infinite recursion(StackOverflowError);nested exception is com.fasterxml.jackson.databind.JsonMappingException: Infinite recursion (StackOverflowError) (through reference chain:xxxxxx


从异常中信息能够看出在转化为json的过程中产生了死循环,把A类转化为json的时候,A类中做了B类的关联映射,而B类中又管理了A类,这样就产生了json转化死循环,究其原因是因为在双向关联的时候没有指定哪一方来维护关联关系,所以才会产生这样的原因,有两种解决方法:


①在一方的的get方法中加上@JsonBackReference注解


②指定维护关系,


(1)可以在 one 方指定 @OneToMany 注释并设置 mappedBy 属性,以指定它是这一关联中的被维护端,many 为维护端。


例:@OneToMany(fetch = FetchType.LAZY ,targetEntity = DeviceEntity.class,mappedBy = "areaId")


(2)在双向的一对一关联中,需要在关系被维护端(inverse side)中的 @OneToOne 注释中指定 mappedBy,以指定是这一关联中的被维护端


TemplateEntity.java


@OneToOne(fetch = FetchType.LAZY ,cascade = CascadeType.ALL, mappedBy = "templateEntity")

   public ConfigEntity getConfigEntity() {undefined

       return configEntity;


   }


ConfigEntity.java


@JoinColumn(name = "template_id" , insertable = false , updatable = false)

   public TemplateEntity getTemplateEntity() {undefined

       return templateEntity;

   }


(mappedBy属性定义了此类为双向关系的维护端,注意:mappedBy 属性的值为此关系的另一端的属性名。)


二、org.hibernate.MappingException: Could not determine type for: xxxxxx


这是因为在实体类中建立关联关系的时候,要把关联关系注解加在getter方法,在属性或setter方法上就会出现这样情况


目录
相关文章
|
5月前
|
Java Spring
Springboot+jpa如何设置启动项目表不存在就主动创建,字段没有就新增
Springboot+jpa如何设置启动项目表不存在就主动创建,字段没有就新增
447 0
|
5月前
|
Java
Springboot+JPA+Sqlite整合demo
Springboot+JPA+Sqlite整合demo
217 0
|
15天前
|
SQL Java 关系型数据库
Springboot引入jpa来管理数据库
Springboot引入jpa来管理数据库
17 0
Springboot引入jpa来管理数据库
|
4月前
|
druid Java 关系型数据库
Spring Boot2 系列教程(二十五)Spring Boot 整合 Jpa 多数据源
Spring Boot2 系列教程(二十五)Spring Boot 整合 Jpa 多数据源
|
15天前
|
SQL Java 数据库连接
springBoot+Jpa(hibernate)数据库基本操作
springBoot+Jpa(hibernate)数据库基本操作
22 0
|
1月前
|
Java 数据库连接 API
【Java笔记+踩坑】Spring Data JPA
从常用注解、实体类和各层编写方法入手,详细介绍JPA框架在增删改查等方面的基本用法,以及填充用户名日期、分页查询等高级用法。
【Java笔记+踩坑】Spring Data JPA
|
2月前
|
安全 Java 数据安全/隐私保护
基于SpringBoot+Spring Security+Jpa的校园图书管理系统
本文介绍了一个基于SpringBoot、Spring Security和JPA开发的校园图书管理系统,包括系统的核心控制器`LoginController`的代码实现,该控制器处理用户登录、注销、密码更新、角色管理等功能,并提供了系统初始化测试数据的方法。
47 0
基于SpringBoot+Spring Security+Jpa的校园图书管理系统
|
2月前
|
Java 关系型数据库 MySQL
|
2月前
|
Java Spring 数据库
怎样动动手指就能实现数据操作?Spring Data JPA背后的魔法揭秘
【8月更文挑战第31天】在Java开发中,数据库交互至关重要。传统的JDBC操作繁琐且难维护,而Spring Data JPA作为集成JPA的数据访问层解决方案,提供了CRUD等通用操作接口,显著减少代码量。通过继承`JpaRepository`,开发者能轻松实现数据的增删改查,甚至复杂查询和分页也不再困难。本文将通过示例详细介绍如何利用Spring Data JPA简化数据访问层的开发,提升代码质量和可维护性。
35 0
|
2月前
|
存储 Java 数据库