Spring数据:更新@query或find + save?

时间:2016-05-04 18:34:08

标签: java spring hibernate spring-data spring-data-jpa

我对spring和spring数据很陌生,我想知道更新数据库中实体的最佳做法。

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

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

或者我应该使用像

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

谢谢!

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您可以使用下面的@Modifying

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

我希望这可以帮到你。