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);
希望对您有所帮助
我对 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);
希望对您有所帮助