我有以下问题:
我有两个处于休眠状态的实体,一个帖子和一个类别。
每个帖子都有一个类别,一个类别可以有多个帖子,因此映射是双向的,并且是一对多/多对一的关系。
当我想显示一个类别时,我想显示带有它的帖子列表,当我想显示一个帖子时,我想显示带有它的类别。这是无限递归问题,可以通过两个注释来解决: @JsonBackReference 和 @JsonManagedReference
通过以下注释定义关系时:
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "CategoryID")
@JsonManagedReference
private Category category;
@OneToMany(mappedBy = "category", fetch = FetchType.EAGER)
@JsonBackReference
private List<Post> posts;
我得到以下JSON:
对于类别:
{
"id": 1,
"name": "Animals"
}
发帖:
{
"id": 1,
"title": "title1",
"description": "description",
"category": {
"id": 2,
"name": "Buisness"
}
}
通过以下注释定义关系时:
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "CategoryID")
@JsonBackReference
private Category category;
@OneToMany(mappedBy = "category", fetch = FetchType.EAGER)
**@JsonManagedReference**
private List<Post> posts;
我得到以下JSON:
对于类别:
{
"id":2,
"name":"Buisness",
"posts":[
{
"id":1,
"title":"title1",
"description":"description"
}
]
}
发帖:
{
"id": 1,
"title": "title1",
"description": "description"
}
我想像第一个例子一样显示帖子,并像第二个例子一样显示类别,有关如何解决此问题的任何想法?