gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 10:48:54 24 4
gpt4 key购买 nike

我目前正在使用 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 '{"age":23}')。

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

有什么方法可以通过注释轻松完成吗?或者我是否必须对每个 PATCH(或 PUT)请求进行自定义验证?我不喜欢该解决方案,因为我必须对模型的每个实体都这样做。

我希望我清楚地暴露了我的问题,如果不清楚,请随时问我更多问题。

感谢您的帮助。

最佳答案

你可以使用:

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

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

关于java - Spring Data Rest PATCH 禁止更新特定字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45635607/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com