在休眠状态下显示JSON双向映射

时间:2018-08-05 14:21:50

标签: json hibernate spring-data hibernate-mapping

我有以下问题:

我有两个处于休眠状态的实体,一个帖子和一个类别。

每个帖子都有一个类别,一个类别可以有多个帖子,因此映射是双向的,并且是一对多/多对一的关系。

当我想显示一个类别时,我想显示带有它的帖子列表,当我想显示一个帖子时,我想显示带有它的类别。这是无限递归问题,可以通过两个注释来解决: @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"
}

我想像第一个例子一样显示帖子,并像第二个例子一样显示类别,有关如何解决此问题的任何想法?

0 个答案:

没有答案