[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 メーリングリストの案内