[seasar-dotnet:786] Re: Timestampによる排他制御について

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2008年 3月 7日 (金) 11:40:47 JST


宮城です。

> Timestampによる自動排他制御を利用しているのですが、
> Oracleの排他対象項目をDATE型からTIMESTAMP(6)に変更すると、
> NotSingleRowUpdatedRuntimeExceptionが発生します。

TIMESTAMP(7)に変更してみてください。
寺岡さんの御指摘どおり、ミリ秒のデータが切り捨てられているのが原因と思います。
詳しくは、
http://s2dao.net.seasar.org/ja/entity.html
「ODP.NET使用時のTimestampカラムの型」
の章の参照をお願いします。

> お世話になっております、寺岡と申します。
>
> 現在S2Dao.NET 1.3.6を使用させて頂いております。
>
> Timestampによる自動排他制御を利用しているのですが、
> Oracleの排他対象項目をDATE型からTIMESTAMP(6)に変更すると、
> NotSingleRowUpdatedRuntimeExceptionが発生します。
>
> ・BookEntityクラスを作成し、BOOKテーブルにマッピングしています。
> ・BookEntityで<TimestampProperty("UpdateDt")>属性を使用しUpdateDtを排他対象項目としています。
> ・UpdateDtはDatetime型です。
> --DDL
> CREATE TABLE SQLWIN.BOOK
> (
> ID VARCHAR2(2) NOT NULL,
> NM VARCHAR2(10) NOT NULL,
> UPDATE_DT TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP,
> CONSTRAINT PK_BOOK PRIMARY KEY (ID)
> )
>
>
> ミリ秒単位の不一致で排他エラーが発生しているのかなと思うのですが、
> Oracle側のUPDATE_DTが08-03-07 11:00:50.984000の場合、
> UpdateDt.Millisecond=984となっているので一致していると思われるのですが。
>
> アドバイスいただけないでしょうか?
> 宜しくお願い致します。
>
> 以上
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


seasar-dotnet メーリングリストの案内