栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Json和Java-循环参考

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Json和Java-循环参考

有两种方法可以解决此问题。如果您必须将实体暴露给外界,建议添加

@JsonIgnore
导致循环引用的属性。这将告诉杰克逊不要序列化该属性。

另一种方法是使用Jackson提供的双向功能。您可以使用

@JsonManagedReference
@JsonBackReference
@JsonManagedReference
是属性的“转发”部分,它将正常序列化。
@JsonBackReference
是参考的“背面”部分;它不会被序列化,但是当“
forward”类型被反序列化时将被重建。

您可以在此处查看示例。

这可以解决您的评论:我想在这种情况下,您可能想使用对外界可见的DTO。我喜欢这种方法,因为我不想将实体暴露在外面。这意味着Jackson注释将在DTO上而不是在实体上。您将需要某种将实体转换为DTO的映射器或转换器。现在,当您对实体进行更改时,除非您修改了映射器/转换器,否则它们不会传播到DTO。我认为这是可以的,因为当您对实体进行更改时,您可以决定是否希望该更改公开。

更新

这是一个很好的博客文章在这里是进入你能处理杰克逊双向关系的各种方式的细节。它描述的解决方案,使用

@JsonIgnore
@JsonManagedReference
@JsonBackReference
@JsonIdentityInfo
@JsonView
和自定义序列为好。这是您可以使用的各种技术的非常全面的文章。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/569086.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号