2016-05-04 10 views
3

私は春と春のデータが新しく、データベースのエンティティを更新するためのベストプラクティスと考えられるものを知りたいと思います。春のデータ:@queryを更新するか検索して保存しますか?

は私が

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

または私は

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

おかげのようなものを使用する必要がありますように私のリポジトリにカスタムクエリを記述する必要があります!

答えて

1

前者の例では、データをプルダウンしてオブジェクトをインスタンス化する必要がないため、パフォーマンスが大幅に向上します。ただし、ビジネスロジックを追加するためにオブジェクトを下流に配置する必要がある場合は、2番目の方法が適している可能性があります。

1

あなたは以下のような@Modifyingを使用することができます。

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

私は、これはあなたを助けることができることを願っています。

+0

はい、@ Modifying @と@ Transactionalアノテーションがあります。私の質問は、パフォーマンスとベストプラクティスに関するものでした。とにかくありがとうございました :) –

関連する問題