我在这两个实体之间有 @ManyToMany 关系:
@Entity
@JsonIdentityInfo(
generator = ObjectIdGenerators.PropertyGenerator.class,
property = "id")
public class Group {
@ManyToMany(mappedBy = "groups")
private final List<Project> projects;
}
@Entity
public class Project {
@ManyToMany
@JoinTable(
name = PROJECTS_GROUPS_TABLE,
joinColumns = {@JoinColumn(name = "project_id")},
inverseJoinColumns = {@JoinColumn(name = "group_id")}
)
private final List<Group> groups;
}
当我收到回复时,数据以这种方式显示:
不同组中相同的组ID
[
{
"id": "**0651465d52684039b9aed91f4098bb07**", // different project id
"groups": [
{
"id": "**977e779c44ed4ec78e14944ad800cc55**", // same group id
"name": "**data**",
"author": "**data**",
"description": "**data**",
"members": "**data**"
}
]
},
{
"id": "**175b39d6392c405b86efee9d43057f6d**" // different project id
"groups": [
"**977e779c44ed4ec78e14944ad800cc55**" // same group id
]
}
]
不同组中相同的项目ID
[
{
"id": "5fe7ead781f7459d83d8c118c812f898", // different group id
"projects": [
{
"id": "**0651465d52684039b9aed91f4098bb07**", // same project id
"name": ""**data**"",
"author": ""**data**"",
"shortDescription": ""**data**"",
"description": ""**data**"",
"version": ""**data**"",
"updates": ""**data**"",
"projectRepo": ""**data**""
}
],
},
{
"id": "977e779c44ed4ec78e14944ad800cc55", // different group id
"projects": [
{
"id": "**0651465d52684039b9aed91f4098bb07**", // same project id
"name": ""**data**"",
"author": ""**data**"",
"shortDescription": ""**data**"",
"description": ""**data**"",
"version": ""**data**"",
"updates": ""**data**"",
"projectRepo": ""**data**""
}
],
}
]
因此,当我请求组列表时,项目的重复值会正确显示,但是当我请求项目列表时,组的重复值将显示为第一个条目,即组的总内容,但其他条目仅显示 id团体的。 我该如何解决这个问题?
解决方案是删除
@JsonIdentityInfo(
generator = ObjectIdGenerators.PropertyGenerator.class,
property = "id"
)
来自 Group 类以正确显示数据