在JAX-RS中使用多对一或一对多映射所需的@JsonIgnoreProperties注释?

时间:2015-01-20 05:01:20

标签: hibernate jboss jackson resteasy jboss6.x

我使用过与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序列号(J​​Boss企业应用程序平台中使用的那些)需要指导如何在对象图中处理这样的循环,否则序列化程序将在循环中的实体之间进行遍历,从而导致无限循环(通常是OutOfMemoryError或StackOverflowError)。我们将通过指示Jackson不通过Section实体上的@JsonIgnoreProperties注释来序列化Section中的场地字段来解决这个问题:

现在我对@JsonIgnoreProperties的实际用途感到困惑。当我们有双向关系时,这个注释是绝对必要的。我见过生产的代码,它没有使用这个注释来实现双向关系,并且工作正常而不会抛出任何错误。

请澄清这种注释在双向关系中是否绝对必要?

由于

0 个答案:

没有答案