为了账号安全,请及时绑定邮箱和手机立即绑定

@JsonIgnore和@JsonBackReference,@JsonManagedRefer

@JsonIgnore和@JsonBackReference,@JsonManagedRefer

慕斯709654 2019-11-29 15:04:33
我知道这两个@JsonIgnore和@JsonManagedReference,@JsonBackReference用于解决Infinite recursion (StackOverflowError),就是这两者之间的区别?
查看完整描述

3 回答

?
米脂

TA贡献1836条经验 获得超3个赞

用于解决无限递归(StackOverflowError)


@JsonIgnore并不是为了解决无限递归问题而设计的,它只是忽略了带注释的属性被序列化或反序列化。但是,如果字段之间存在双向链接,则由于会@JsonIgnore忽略带注释的属性,因此可以避免无限递归。


在另一方面,@JsonManagedReference和@JsonBackReference旨在处理领域之间的双向联动,一个家长的角色,另一个用于儿童分别作用:


为避免此问题,应处理链接,以使对带@JsonManagedReference注释的属性进行正常处理(正常序列化,无需反序列化的特殊处理),并且对带@JsonBackReference注释的属性不进行序列化。在反序列化期间,其值设置为具有“托管”(转发)链接的实例。


回顾一下,如果您在序列化或反序列化过程中不需要这些属性,可以使用@JsonIgnore。否则,使用@JsonManagedReference/ @JsonBackReference对是可行的方法。


查看完整回答
反对 回复 2019-11-29
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

我在这里有一个类似的问题,在这里我需要解析递归字段,看起来也许我需要使用@JsonManagedReference但不确定它会如何工作?我尝试使用JsonManagedReferenceJsonBackReference但似乎不起作用,每次遇到异常时,我都想看看您是否可以帮助我。

查看完整回答
反对 回复 2019-11-29
  • 3 回答
  • 0 关注
  • 1740 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信