首页 文章

Spring Data Rest PATCH禁止更新特定字段

提问于
浏览
2

我目前正在使用spring-data-rest处理一个小型REST Web服务:

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>

我按照以下指南:https://spring.io/guides/gs/accessing-mongodb-data-rest/它工作得很好 .

我在Person.class上添加了一些注释,以便在POST请求期间验证对象(如@NonNull等),如下所示:

public class Person {

    @Id
    private String id;

    @NonNull
    private String firstName;

    @NonNull
    private String lastName;

    private Integer age;

}

但现在我想做一个PATCH请求来更新我的对象(通过执行请求curl -X PATCH http://localhost:8080/people/598c2a80d8425fae64161cc4 -d '') .

它也工作正常,但我想阻止某些字段的更新,不应该允许人们更新firstName和lastName .

有没有办法通过注释轻松完成?或者我是否必须为每个PATCH(或PUT)请求进行自定义验证?我不喜欢这个解决方案,因为我必须为我的模型的每个实体做这个 .

我希望我能清楚地揭露我的问题,如果不清楚,请随时向我提出更多问题 .

谢谢你的帮助 .

1 回答

  • 0

    你可以使用:

    @Column(updatable = false)
    @NonNull
    private String firstName;
    

    这不会引发错误,但会避免更新字段 .

相关问题