[Seasar-user:10331] Re: [S2Dao]バッチ更新+楽観的排他ふたたび
Toshihiro Nakamura
[E-MAIL ADDRESS DELETED]
2007年 9月 5日 (水) 13:56:16 JST
中村(taedium)です。
> > OracleのJDBCドライバの都合で諦めていた
> > S2Daoのバッチ更新時での楽観的排他制御なのですが、
> > 正式に対応できないでしょうか?
> >
> > というのも、[Seasar-user:9260]で初めて知ったのですが、
> > 最新のOracleJDBCドライバではバッチ更新時の更新件数を
> > 正しく返せるようになったようなので。
> >
> >
> > 実現方法としては、
> > AbstractBatchAutoHandlerとBasicBatchHandlerで
> > executeの戻り値のint[]に、1かSUCCESS_NO_INFO以外が入っていたら
> > NotSingleRowUpdatedRuntimeExceptionをスローすれば
> > 良いのかな、と思います。
> > (こうすれば、SUCCESS_NO_INFOを返してくるドライバは、
> > 楽観的排他の対象外にできるので)
> >
> > どうでしょうか。
>
> 良いと思いますー、S2Daoを更新しちゃってくださいー
> # あれ? せろさんてコミッタでしたっけ...?
Express Edition の 10.2.0.1.0 で試してみたところ、
Statementを使う場合は更新件数を返してくれるのですが、
PreparedStatementを使った場合はSUCCESS_NO_INFOが
返ってきます。
JDBCドライバは10.2.0.2と10.2.0.3の両方で試してみたのですが
同じ結果でした。
[Seasar-user:9260]で試されているのも、Statementのほうですね。
AbstractBatchAutoHandlerでつかっているのはPreparedStatement
なので、難しいですね。
--
Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]>
Seasar-user メーリングリストの案内