小编Wan*_*eek的帖子

双向多对多关系中的循环引用

我的实体中有多对多的双向关系.请参阅以下示例:

public class Collaboration {

    @JsonManagedReference("COLLABORATION_TAG")
    private Set<Tag> tags;

}

public class Tag {

    @JsonBackReference("COLLABORATION_TAG")
    private Set<Collaboration> collaborations;

}
Run Code Online (Sandbox Code Playgroud)

当我尝试将其序列化为JSON时,我遇到以下异常:`

"java.lang.IllegalArgumentException:无法处理托管/后向引用'COLLABORATION_TAG':后引用类型(java.util.Set)与托管类型(foo.Collaboration)不兼容.

实际上,我知道这是有道理的,因为javadoc明确声明你不能在集合上使用@JsonBackReference.我的问题是,我应该如何解决这个问题?我现在所做的是删除父端的@JsonManagedReference注释,并在子端添加@JsonIgnore.有人能告诉我这种方法有什么副作用吗?还有其他建议吗?

java json many-to-many jackson

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

jackson ×1

java ×1

json ×1

many-to-many ×1