2016-04-18 9 views

答えて

1

あなたは私に言わせれば:このようなクエリを使用しないでください。これは、2番目のレベルのキャッシュが撲滅され、パフォーマンスの問題が発生するためです(アプリケーションの速度は若干遅くなります)。

そして、次のあなたがしたいプロセスが実際にある方法によって

  • データベース
  • 変更(setterメソッドを経由して)ロードされたオブジェクトの属性からエンティティをロード
  • したい場合は、(あなたのトランザクションが終了したときに、これが自動的に行われるので、明示的にPartnerRepository.save(entity)を呼び出す必要はありません)データベースへ

をあなたのエンティティを保存

@Modifying 
@Query("update Person p set p.age = :age where p.name = :name") 
int setAgeByName(@Param("age") int age, @Param("name") String name); 

そして、あなたが変更されているどのように多くのエントリを取り戻す:クエリを使用するために、私はあなたの質問で述べたように、あなたのクエリを記述示唆しています。

+0

多数のエントリに1つの属性を設定する必要がある場合はどうなりますか?私はその後、完全なエンティティを取得し、トランザクション内でプロパティを設定する必要があります。しかし、私はすべてのデータのフェッチを避けたい。 – membersound

関連する問題