我使用过与JBoss提供的RESTEasy打包的Jackson。来自docs,
annotation @JsonIgnoreProperties can be used to either suppress
serialization of properties (during serialization), or ignore processing of JSON
properties read (during deserialization).
从定义中可以清楚地看出它的目的是什么。
但我正在通过JBoss的这个tutorial,其中提到了以下内容。
在我们继续之前,。从/ rest / venues或/ rest / venues / 1等网址检索节目几乎总会导致无效的JSON响应。根本原因是Venue实体中存在双向关系。场地包含与部分s的1:M关系,也可以链接回场地。像Jackson这样的JSON序列号(JBoss企业应用程序平台中使用的那些)需要指导如何在对象图中处理这样的循环,否则序列化程序将在循环中的实体之间进行遍历,从而导致无限循环(通常是OutOfMemoryError或StackOverflowError)。我们将通过指示Jackson不通过Section实体上的@JsonIgnoreProperties注释来序列化Section中的场地字段来解决这个问题:
现在我对@JsonIgnoreProperties
的实际用途感到困惑。当我们有双向关系时,这个注释是绝对必要的。我见过生产的代码,它没有使用这个注释来实现双向关系,并且工作正常而不会抛出任何错误。
请澄清这种注释在双向关系中是否绝对必要?
由于