Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 不从数据库检索对象的部分更新_Spring Boot_Spring Mvc_Spring Data Jpa_Spring Data - Fatal编程技术网

Spring boot 不从数据库检索对象的部分更新

Spring boot 不从数据库检索对象的部分更新,spring-boot,spring-mvc,spring-data-jpa,spring-data,Spring Boot,Spring Mvc,Spring Data Jpa,Spring Data,我正在寻找一些方法来部分更新对象,而不从DB检索对象。 假设我有一个包含以下属性的雇员实体- 名字 姓氏 电话 年龄 薪水 我在更新请求中得到的JSON可能不包含所有属性。我需要确保只更新请求中提供的属性,并保持所有其他数据不变 我探索了一些实现部分更新的方法,但所有这些方法都涉及从数据库检索数据。我没有这个选项,因为在我的例子中,db太慢了,这会增加响应时间。请建议您可以结合@修改和@Query注释来发布更新查询 @Modifying @Query("update Employee

我正在寻找一些方法来部分更新对象,而不从DB检索对象。 假设我有一个包含以下属性的雇员实体-

  • 名字
  • 姓氏
  • 电话
  • 年龄
  • 薪水
  • 我在更新请求中得到的JSON可能不包含所有属性。我需要确保只更新请求中提供的属性,并保持所有其他数据不变


    我探索了一些实现部分更新的方法,但所有这些方法都涉及从数据库检索数据。我没有这个选项,因为在我的例子中,db太慢了,这会增加响应时间。请建议

    您可以结合
    @修改
    @Query
    注释来发布更新查询

    @Modifying
    @Query("update Employee e set e.firstName = :firstName, e.lastName = :lastName where e.id = :id")
    void updateEmployeePartially(Long id, String firstName, String lastName);
    
    

    欲了解更多信息,您可以检查此项

    如何在没有主键的情况下进行更新?您必须通过员工正在更新的主键从数据库中获取原始数据:-验证您尝试更新的记录是否有效-您将只更新请求正文中显示的字段,该字段是一个好的方法,您可以从中获取ID?感谢通知,我在写作时错过了这一点,我已经编辑了我的答案。