为什么 Springboot 响应中存在不同关系的一些相等值会被截断?

问题描述 投票:0回答:1

我在这两个实体之间有 @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团体的。 我该如何解决这个问题?

java mysql spring-boot spring-data-jpa many-to-many
1个回答
0
投票

解决方案是删除

@JsonIdentityInfo(
     generator = ObjectIdGenerators.PropertyGenerator.class,
     property = "id"
)

来自 Group 类以正确显示数据

© www.soinside.com 2019 - 2024. All rights reserved.