当前位置: 首页 > 知识库问答 >
问题:

Spring Data Rest修补程序禁止更新特定字段

袁雅逸
2023-03-14

我目前正在使用spring-data-rest开发一个小型REST web服务,使用:

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
public class Person {

    @Id
    private String id;

    @NonNull
    private String firstName;

    @NonNull
    private String lastName;

    private Integer age;

}

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

有什么方法可以很容易地用注释来完成吗?或者我必须对每个补丁(或PUT)请求进行自定义验证吗?我不喜欢这种解决方案,因为我必须对模型的每个实体都这样做。

我希望我清楚地暴露了我的问题,如果不清楚,请多问我一些问题。

共有1个答案

吴缪文
2023-03-14

您可以使用:

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

这不会抛出错误,但会避免字段被更新。

 类似资料:
  • 问题内容: 我想更新浏览器同步 而不更新所有节点包 。我该如何实现?我当前的浏览器同步版本没有浏览器同步GUI :( 问题答案: 在大多数情况下,您只需npm更新(或yarn upgrade )模块即可获取最新的不间断更改 (尊重package.json中指定的semver) (<-再次阅读最后一部分)。 用看哪个模块有新版本 使用(无包名)更新所有模块 包括如果你想更新的版本号保存到您的pack

  • 问题内容: 是否有更新的方式只有一些领域使用该方法的实体对象从春数据JPA? 例如,我有一个这样的JPA实体: 通过其CRUD存储库: 在Spring MVC中,我有一个控制器,该控制器获取用于更新它的对象: 我知道我可以使用来加载用户findOne,然后更改其名称并使用save…来更新它。但是,如果我有100个字段,而我想更新其中的50个字段,则更改每个值可能会很烦人。 有没有办法告诉类似“ 保

  • 有没有办法使用Spring Data JPA中的方法只更新实体对象的某些字段? 我知道我可以使用加载用户,然后更改其名称并使用更新它...但是,如果我有100个字段,我想更新其中的50个,这可能是非常恼人的更改每个值… 难道没有办法告诉像“保存对象时跳过所有空值”这样的事情吗?

  • 我对PersondTo有以下定义: 下面是一个示例记录: 现在,无名氏离婚了。所以我需要向这个URL发送补丁请求: 我想不出该怎么做。以下是我到目前为止所做的尝试: 以下是上面的问题: 1)由于我只设置了MaritalStatus,其他字段都将为null。因此,如果我打印出请求,它将如下所示: 请欣赏那些编写客户机应用程序的人提出的使用Spring的RESTTemplate使用Restful we

  • 我正在尝试将配置文件信息编辑/更新到我的用户表中。 我的想法是让经过身份验证的用户能够在用户表中编辑自己的配置文件。 在注册过程中,您只需要填写几个特定的项目(用户名、姓名、姓氏、电子邮件、密码),但我还向用户表中添加了几个额外的列(城市、国家、电话、twitter、facebook)。 我有一个profile用户页面(route='/profile'),其中显示了所有信息。当然,注册过程中不需要

  • 以下是我要保存(创建/更新)的实体模型: 有两种方法可以更新此实体: < li >第一个更新除< code>notified属性以外的所有属性的人 < li >第二个更新< code>notified属性的仅 有没有办法告诉Hibernate忽略某个特定方法的某些字段?我需要创建两个不同的特定dao方法吗?我是否需要为经典的< code>save方法保留< code>updatable=false