2017-03-20 10 views
0

jdbctemplateを使用してJavaプロジェクトを実行しています。このプロジェクトでは、500レコードのバッチサイズで2000レコードの更新が行われています。jdbctemplateによるスプリングトランザクション管理

私は単一の更新クエリを使用しているので、私は春のトランザクション管理を使用する場合、アプリケーションの改善はありますか?それはコードとしての性能に役立つだろう、私の知識を1として

答えて

0

も、私が直接にリスト内に存在するエンティティを保存

@Override 
public <S extends Classname> Iterable<S> save(Iterable<S> arg0); 

を使用することをお勧めだけ

たら、データベースを打つために起こっていますjdbcTemplateまたはトランザクション管理を使用しないデータベース

+0

あなたは500のバッチサイズでjdbcTemplate.update()を実行していても、2000レコードすべてがデータベースに1回だけヒットすることを意味しますか?また、あなたの提案にもっと詳しく説明できますか? – Ankit

+0

私の提案についての主なものは、** PagingAndSortingRepository **インターフェース –

+0

'パブリック・インタフェースClassRepositoryが \t \tを拡張PagingAndSortingRepository { \t @Override \t公共反復処理可能を使用することです@ankitjava保存する(Iterable arg0); }「 –

0

これは、要件によって決まります。 2000レコードが定数でなければならない場合は、トランザクション管理を使用する必要があります。そうでなければ、毎回1レコードを処理できます。

+0

あなたが私の質問を理解したかどうかわかりません – Ankit

0

これは間違いなくあなたを助けることができます。 @Transactionalアノテーションで注釈が付けられたJavaメソッドで、500レコードのバッチ・コールを1つずつ作成することができます。そうすれば、更新のいずれかが失敗した場合に、春は操作全体をロールバックします。

P.S:トランザクションマネージャを指定する必要があるXML構成は指定していません。ニーズに合った適切なものを追加できます。

関連する問題