[Seasar-user:14725] Re: [DBflute]外だしSQLのカーソル検索でフェッチエラー
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]
2008年 6月 17日 (火) 12:59:56 JST
お世話になります。mackeyです。
久保様、回答ありがとうございます。
>UserTransactionを直接利用しているのであれば、
>トランザクションの開始と終了の両方をCallbackメソッド
>内部で記述することでカーソル検索はトランザクションから
>外れます。
→こちらの方法で実行したいと思います。
Callbackメソッド内部というのは下記のように
カーソル呼び出し中のことでよろしいでしょうか?
final PurchaseSummaryMemberCursorHandler handler = new PurchaseSummaryMemberCursorHandler()
{
public Object fetchCursor(PurchaseSummaryMemberCursor cursor) throws SQLException {
// トランザクションを開始する。
userTransaction.begin();
while (cursor.next()) {
final Integer memberId = cursor.getMemberId();
final String memberName = cursor.getMemberName();
final Integer purchaseSummary = cursor.getPurchaseSummary();
_log.debug(" " + memberId + " - " + memberName + " - " + purchaseSummary);
}
// コミット処理
userTransaction.commit();
return null;
}
};
memberBhv.outsideSql().cursorHandling().selectCursor(path, pmb, handler);
>割り切れる件数のときは一気にInsertしてしまいますが、
>あまりに膨大な件数の場合は自分も同じようにすると思います。
>(カーソル検索でTSV作って、その後DBのBulkInsert機能で登録)
→ちなみにSQLLODERをjavaから呼び出すというこはjavaからバッチを
起動することになりますか?
Seasar-user メーリングリストの案内