Spring Data Rest默认情况下将实体设为只读

时间:2017-02-07 18:35:07

标签: jackson spring-data-rest

我有一个通过Spring Data Rest暴露的API,它在大多数情况下是只读的,但它允许通过PATCH请求更新一些属性。

在全球范围内是否有任何(我假设Jackson)配置基本上会使实体只读,除非特定属性以某种方式注释。

我熟悉@JsonProperty(access = Access.READ_ONLY)杰克逊注释但是希望避免必须注释所有只读属性。

例如,给定下面的类,只有明确注释的字段才是可写的。默认情况下,所有其他字段都是可读的:

public class Thing{

    private String fieldOne;

    @JsonProperty(access = Access.READ_WRITE)
    private String fieldTwo;

    private String fieldThree;

    // a lot of other properties
}

任何全局配置失败,是否可以在类级别应用任何内容?

1 个答案:

答案 0 :(得分:0)

我不知道如何将类中的所有属性全局设置为只读。从FaserXML的2.6+版开始,您可以使用以下注释来至少定义您将忽略的属性集,并且仅允许序列化。以下注释将在类级别使用:

@JsonIgnoreProperties(value={ "fieldOne", "fieldThree"}, allowGetters=true)

这并不是你想要的,但可以说使编码更容易。