【问题标题】:Spring Data: update @query or find+save?Spring Data:更新@query 还是查找+保存?
【发布时间】:2016-05-04 18:34:08
【问题描述】:

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

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

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

或者我应该使用类似的东西

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

谢谢!

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您可以使用@Modifying,如下所示:

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

      希望对你有帮助。

      【讨论】:

      • 是的,我确实有@Modifying 和@Transactional 注释。我的问题是关于性能和最佳实践。还是谢谢你:)
      猜你喜欢
      • 1970-01-01
      • 2013-06-11
      • 2016-12-18
      • 1970-01-01
      • 1970-01-01
      • 2021-08-27
      • 1970-01-01
      相关资源
      最近更新 更多