java - 如何处理Jackson的无限递归

标签 java json spring jdbc spring-data

我的问题是我有两个类(class),如下

    public class User implements UserDetails {
        @Id
        @GeneratedValue
        @Column(name = "user_id")
        private Long Id;
        @OneToOne
        @JsonManagedReference
        private Wallet wallet;
         .........
         // Getters and setters..
    }

还有

@Entity
public class Wallet {

@Id
@GeneratedValue
private Long Id;
@OneToOne()
@JsonBackReference
private User user;
.........
//Getters and setters.
}

有时我需要来自User模型的Wallet信息,而有时我需要相反的信息。

因此,如果我在任何一侧写入 Json Ignore 或 Json back reference,我将无法获取其他对象。

例如:如果我在Wallet类中编写@JsonBackReference,我在查询时无法获取User信息钱包

我的问题是如何处理这种情况。我已经尝试了 @JsonIgnore@JsonBackReference

提前致谢。

最佳答案

如果您使用的是 Jackson 2.0+,您可以使用 @JsonIdentityInfo 来解决您的问题。

这里是docs有一个完整的例子。

关于java - 如何处理Jackson的无限递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37404361/

相关文章:

java.lang.UnsatisfiedLinkError - JNI

java - 将 JSON 发送并解析到 spring Controller ?

java - spring boot mongodb审计报错

java - 简单的 json 到 xml 转换

java - 如何从动态创建的HTML表格中获取特定行的单元格数据?

java - 将 JSONObject 获取到字符串数组值时出现问题

Java:Spring/Quartz:基本教程代码不起作用

java.lang.NoSuchFieldError : REFLECTION during Tomcat deploying 错误

java - 可以存储多种数据类型的变量

php - 使用 Laravel 中的三个表的数据返回 json