jackson循化加载数据的问题
当我们对两个实体进行关联的时候例如我们上一篇文章中提到的teacher与student实体中提到的@ManyToMany的时候,就会遇到一个问题,当我们获取给前台传送数据的时候就会遇到对象被jackson
转化为json格式的数据的时候,就会有循环加载的问题,及teacher里面student, student里面有teacher……这样就会有四循环的问题。
Question
question
让我们看一下问题吧!实体关系及代码参见上一片博客
src/main/java/com.mengyunzhi/controller/TeacherController.java
|
|
让我来看一下我们准备的数据:teacher
sql语句:select *from teacher;
student
sql语句: select *from student;
student_teacher
sql语句: select *from student_teacher;
curl
测试, 在终端输入以下命令:curl http://127.0.0.1:8080/Teacher/getAll
|
|
就会发现数据出现了死循环。
Method
the first way
当然了,这一种解决办法很简单,加@JsonIgnore
注解,这句话的意思就是我们在将其转化为json对象的时候忽略这个属性,但是这个方法会存在一个问题就是我们前台想用这个属性的时候就会发现因为没有而报错。想哭。来让我们测试一下吧!src/main/java/com.mengyunzhi/repository/Teacher.java
然后写测试用例
src/test/java/com.mengyunzhi/controller/TeacherController.java
|
|
然后我们发现测试成功了