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

Spring靴贴片

洪高阳
2023-03-14

当我阅读文档(https://spring.io/guides/gs/accessing-data-rest/)

PUT替换整个记录。未提供的字段将替换为null。修补程序可用于更新项目的子集。

因此,我尝试为我的User实体使用PATCH,其中包含两个字段(姓名和姓氏)

@RequestMapping(path="/user/{id}", method = RequestMethod.PATCH)
public User updateUser ( User user) {       
    return userRepository.save(user);
}

当我发送至:

本地主机:8080/用户/34

body的name:“user”and surface:“testSurname”效果很好。但当我只发送name(不带姓氏)时,姓氏也会更新为空。

如何防止Spring启动更新具有空值的字段?

共有1个答案

哈涵容
2023-03-14

您在此处未使用“Spring数据Rest”。您正在使用Spring数据jpa存储库用户存储库保存(部门);

通过创建自定义超文本传输协议endpoint和Spring MVC。

@RequestMapping(path="/user/{id}", method = RequestMethod.PATCH)
public User updateUser ( User user) {...

要查看所描述的修补程序行为,必须使用spring data rest公开的endpoint,而不是自定义的endpoint。当您创建一个自定义endpoint时,它将完全按照您的代码执行,spring不会干扰您的代码并改变行为。

 类似资料:
  • 我正在用Thymeleaf构建一个Spring Boot应用程序。我的模板(视图)和静态文件夹都在src/main/Resources/静态和src/main/Resources/tem板下。当我通过main方法(使用eclipse)运行应用程序时,一切都很好。但是,我已经按照说明创建了一个war文件,当我将其部署到Tomcat 7时——静态内容丢失了,只显示了Thymeleaf html模板。

  • 作为一个新的Web应用程序项目的一部分,我计划学习Spring。我开始通读Spring框架参考。当我在谷歌上搜索时,我遇到了Spring boot。我所理解的是,Spring boot通过减少配置帮助构建应用程序的速度比Spring快得多。现在我有点困惑,我应该继续学习Spring还是跳转到Spring boot。我的目的是了解Spring作为一个框架是如何工作的,而不是一些特性。所以请让我知道,

  • 我正在使用Spring boot 2.0.2应用程序通过HTTPS对外部api进行REST api调用。 我是TLS和SSL的新手。我的理解是,TLS是一种更安全的方式,用于传输安全的敏感数据。 我的问题是: 如何确定我的应用程序使用的TLS版本

  • 我有两个项目。我用Angular2 cli构建的Angular2应用程序和只为Angular2应用程序服务的Spring Boot应用程序。我用构建Angular2应用程序,它会生成一个文件夹。然后,我将文件夹的内容放在Spring Boot应用程序的中。 我的Spring启动应用程序有两个文件。 Spring Boot应用程序类: 及其应用。属性文件: 它工作得很好,但是如果我转到一个url并点

  • 我正在练习使用spring boot来处理restful应用程序 我已经设置了@RestController和@Entity这样 和 当我用邮递员http://localhost:8080/cardatabase/api/cars我有一张汽车清单 但即使我去http://localhost:8081/cardatabase/cars,顶部嵌入 正常吗? 谢谢

  • 我在下面的链接中添加了过滤器作为问题的答案 Spring Boot Data Rest+CORS不能正确启用选项/删除