目的:主キーの指定されたリストによって、同じテーブルの一部の列を更新し、行の更新は、クエリ(ネイティブではない)が成功か否スプリングデータJPA更新複数の行
であるかどうかを示すためにINT []順序付け返す:
update MyEntity e set e.col_1 = :v1, e.col_2 = :v2 where e.id in :ids
スプリングデータJPA方法:
@Modifying(clearAutomatically = true)
@Transactional
public int updateCols(@Param("v1") String v1, @Param("v2") String v2, @Param("ids") List<Long> idList);
スプリングJpaTransactionManagerが使用さ
質問:1)Spring Data JPAのみで、どのように行うのですか? (既存のコードが大容量であるため、リポジトリをカスタマイズすることはできません)、SpringデータJPAのみを使用したJDBCバッチ更新と同等の効果を達成したいと考えています。
2)バンプデータJAPは、入力リストのサイズより小さい上記の更新メソッドによって整数を返す可能性はありますか?それが起こる可能性がある場合は、私の入力リストのどれが失敗したかをどのように知るのですか?どんな順序で?
3)上記の方法が正常に終了した後、データベース行がまったく更新されないことに気付きました。どのように春データjpaでデータベースに同期させることができますか?
4)バネデータJPAでエンティティ更新をフラッシュしないと、バッチではなく1つずつ更新されますが、データベースの変更は表示されません。 ありがとうございます