2017-08-11 9 views
1

の更新を禁止:春データ休息PATCHは、私が現在使用して、スプリング・データ・休息を用いた小型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/をし、それが本当にうまく働いています。

私はこのような(@NonNullのようななど)POSTリクエスト中にオブジェクトを検証するために、私のPerson.classにいくつかの注釈を追加します。

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 '{"age":23}という要求を行うことによって)。

これもうまくいきますが、一部のフィールドで更新が行われないようにするため、たとえばfirstNameとlastNameの更新を許可しないでください。

アノテーションで簡単に行う方法はありますか?または、すべてのPATCH(またはPUT)リクエストに対してカスタム検証を行う必要がありますか?私は私のモデルのすべてのエンティティのためにそれをやらなければならないので、その解決策が嫌いです。

私は明らかに私の問題を明らかにしたいと思いますが、それがはっきりしない場合は、私に多くの質問をしてください。

ありがとうございました。

+0

これを見てください。 https://stackoverflow.com/questions/45668388/spring-security-for-certain-entity-variables?noredirect=1#comment78324306_45668388 – ArslanAnjum

答えて

0

あなたが使用することができます。これは、エラーをスローしませんが、更新されてからフィールドを避けることができます

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

関連する問題