我有这两个表:
Student
- id
- name
- List<Course>
Course
- id
- title
- List<Student>
我有一个
StudentRepository
和CourseRepository
(JpaRepository)。当我用以下代码加载学生时:
fun getAll(): List<Student> {
return studentRepository.findAll()
}
我得到一个无限的 list 。
但我希望这个JSON输出:
[
{
"id":1,
"name":"Ben"
"course": [
{
"id":1,
"title":"Math"
},
{
"id":2,
"title":"English"
}
]
}
]
我如何得到这个结果?
//编辑:
我得到一个无限的 list
最佳答案
如果使用 jackson ,则可以通过使用@JsonBackReference
(在子级之上)和@JsonManagedReference
(在父级之上)注释仅在子级中生成父级的json。
如果要禁止打印该关系,则可以在不需序列化的字段上使用@JsonIgnore
或@JsonIgnoreProperties
批注。
这是Course
类的示例:
@JsonIgnoreProperties(value = { "students" })
class Course(...)
您可以找到更多示例here。
关于spring - Spring Boot JPA加载多对多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59933650/