Spring 数据:更新@query 还是查找+保存?

Spring Data: update @query or find+save?

我对 spring 和 spring 数据还很陌生,我想知道什么是更新数据库中实体的最佳实践。

我是否应该在我的存储库中编写自定义查询,例如

@Query("update Person set email = :email where id = :id)

或者我应该使用类似

的东西
onePerson = repository.findOneById(id);
onePerson.setEmail(email);
repository.save(onePerson);

谢谢!

前一个 @Query 示例将提供更好的性能,因为您不需要下拉数据和实例化对象。但是,如果您需要下游对象用于其他业务逻辑,则第二种方法可能更可取。

您可以像下面这样使用 @Modifying

@Modifying
@Query("update User u set u.firstname = ?1 where u.lastname = ?2")
int setFixedFirstnameFor(String firstname, String lastname);

希望对您有所帮助