【问题标题】:Partial update without retrieving the object from db部分更新而不从数据库中检索对象
【发布时间】:2020-12-27 16:03:29
【问题描述】:

我正在寻找某种方法来部分更新对象而不从数据库中检索对象。 假设我有一个包含以下属性的 Employee 实体 -

  1. 名字
  2. 姓氏
  3. 电话
  4. 年龄
  5. 工资

我在更新请求中获得的 JSON 可能不包含所有属性。我需要确保只更新请求中提供的属性,并保持所有其他数据不变。

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

【问题讨论】:

  • 没有主键如何更新?
  • 您必须通过 Employee 正在更新的主键从数据库中获取原始数据: - 验证您尝试更新的记录是否有效 - 您只会更新请求正文中存在的字段这是个好方法

标签: spring-boot spring-mvc spring-data-jpa spring-data


【解决方案1】:

你可以结合@Modifying@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);

更多信息可以查看article

【讨论】:

  • 您从哪里获得 ID?
  • 感谢您的通知,我在写的时候错过了,我已经编辑了我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-08
  • 2015-12-13
  • 1970-01-01
  • 1970-01-01
  • 2021-10-08
相关资源
最近更新 更多