[Seasar-user:14729] Re: [DBflute]外だしSQLのカーソル検索でフェッチエラー
kubo
[E-MAIL ADDRESS DELETED]
2008年 6月 17日 (火) 17:55:14 JST
久保です。
mackeyさんへ
userTransactionを生で使ったこと無いのですが、
やりたいことは提示されたトランザクションの位置で
意識合っています。
もし、コミットを数千件単位で行うとかであれば、
実際にはコミットの記述はループの中で適切な
タイミングで実行することになると思います。
2008/6/17 <[E-MAIL ADDRESS DELETED]>:
> お世話になります。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 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
Seasar-user メーリングリストの案内