java - Spring Data JPA 到深入而奇怪的映射

标签 java json spring spring-data-jpa crud

最近我尝试创建多对一和一对多的 CRUD。我得到了以下奇怪的结果,但我无法处理它。

这是我得到的来自/teams 的 JSON

[
{
    "id": 3,
    "name": "team1",
    "footballers": [
        {
            "id": 12,
            "name": "karol",
            "age": 0,
            "team": {
                "id": 3,
                "name": "team1",
                "footballers": [
                    12,
                    {
                        "id": 13,
                        "name": "Pauluszka",
                        "age": 0,
                        "team": 3
                    }
                ]
            }
        },
        13
    ]
}
]

我想要实现的是

[
{
    "id": 3,
    "name": "team1",
    "footballers": [
        {
            "id": 12,
            "name": "karol",
            "age": 0
         },
         {
           "id": 13,
           "name": "Pauluszka",
           "age": 1
        }
    ]
}

]

这是我的 Pojo

足球运动员.java

...somecodehere
@ManyToOne
@JoinColumn(name="team_id")
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class , property = "id")
private Team team;
...somecodehere

团队.java

...somecodehere
@OneToMany(mappedBy = "team")
@JsonIdentityInfo(
        generator = ObjectIdGenerators.PropertyGenerator.class,
        property = "id")
private List<Footballer> footballers;
...somecodehere

如果您能为我提供一些提示,我将不胜感激,我应该改变什么才能实现我想要的目标。

最佳答案

使用@JsonManagedReference@JsonBackReference

这里有示例http://www.baeldung.com/jackson-bidirectional-relationships-and-infinite-recursion

您可以使用@JsonView注释来指定要在选定 View 中序列化的字段。这将允许您根据需要省略 playerteam 属性。

关于java - Spring Data JPA 到深入而奇怪的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48082897/

相关文章:

java - 获取目录和子目录中所有txt文件的列表并将其添加到List中

javascript - Chrome 扩展程序 - 内容脚本 - 获取当前选项卡的 innerText - 不工作

java - 如何在运行时有条件地运行或启动 Spring 计划作业?

java - 如何根据 MiniMax Alpha-Beta 的返回值在游戏板上移动?

java - 将 future.onComplete 与 Java 和 Akka 结合使用,并使用不同的结果作为字符串

android - 为什么 futureBuilder 有时会卡在进度加载器上?

java - 需要有关使用 Maven 创建 jar 的提示

java - 自 Spring Boot 2.0.2-RELEASE 以来,指标端点不可用

java - 打开和关闭飞行模式以及如何在 android 中打开移动数据

java - 如何在 Java 中合并和转换两种不同类型的 map ?