SQL Server から Oracle に移行する NHibernate アプリがあります。オプティミスティック コンカレンシーは、<timestamp name="Version">
マッピング要素を介して実装されます。
Version
Oracle の対応する列のデータ型は ですDATE
。オブジェクトを保存した後、メモリ内の C# オブジェクトにはミリ秒単位のタイムスタンプ値 (例: 12:34:56.789) が残りますが、データベースの値は秒単位 (例: 12:34:56) までしか正確ではありません。したがって、オブジェクトを 2 回保存しようとすると、2 つの値が一致しないため、StaleStateException が発生します。
Version
列のデータ型を に変更して、これを修正しようとしましたTIMESTAMP(3)
。残念ながら、C# オブジェクトと DB 値はまだ 1 ミリ秒ずれているため (例: 12:34:56.789 対 12:34:56.788)、オブジェクトを 2 回保存しようとすると、StaleStateException が発生します。
<timestamp>
タイプの Oracle 列への有効なマッピングを作成しDATE
たりTIMESTAMP
、同じオブジェクトを複数回保存できるようにするにはどうすればよいですか?
ありがとう。
-- ブライアン