[Seasar-user:21233] Re: Doma で Mssql2008Dialect

Toshihiro Nakamura [E-MAIL ADDRESS DELETED]
2011年 12月 23日 (金) 16:52:52 JST


中村です。

報告ありがとうございます。
これはDomaのバグでした。
修正してSNAPSHOT版を作成しましたので
よろしければお試しください。

http://maven.seasar.org/maven2-snapshot/org/seasar/doma/doma/1.20.1-SNAPSHOT/doma-1.20.1-20111223.074514-1.jar

2011年12月23日14:56 近澤 英 <[E-MAIL ADDRESS DELETED]>:
> お世話になります。
> 近澤と申します。
>
> Doma 1.20.0 を利用させて頂いております。
>
> SQLServer2008 の Mssql2008Dialect 利用時に、
> うまく動作しないので質問させてください。
>
> select するとき、SelectOptions.get().forUpdate() を指定すると、
> 次に同じSQLを発行した際に with句 が2つ指定されてしまいます。
>
> SQLは非常に単純な、下記のような内容です。
> select a
> from b
> where c = /* cond */null
>
> ログを吐くと、2回目以降の呼び出しは
> select a
> from b
> with (updlock, rowlock) with (updlock, rowlock) where  c = '1'
> となってしまっています。
>
> すこしデバッグしたところ、sqlNode のキャッシュに with句付でキャッシュ
> されているようですが、これが関係あるかはわかりません。。
>
> ただ、2回目以降は、forUpdate 無しで呼び出しても
> with句が付いているようです。
>
> 比較の為、PostgreSQL の Dialect で試したところ
> こういった現象は発生しませんでした。
>
> Mssql2008Dialect では何か特別な指定が必要であれば
> ご教示頂きたいです。
>
> お手数おかけして申し訳ございませんが、
> 宜しくお願い致します。
>
> --
> 近澤
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user



-- 
Toshihiro Nakamura


Seasar-user メーリングリストの案内