我对spring和spring数据很陌生,我想知道更新数据库中实体的最佳做法。
我应该在我的存储库中编写自定义查询,例如
@Query("update Person set email = :email where id = :id)
或者我应该使用像
这样的东西onePerson = repository.findOneById(id);
onePerson.setEmail(email);
repository.save(onePerson);
谢谢!
答案 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);
我希望这可以帮到你。