[Seasar-user:13309] Re: 【JdbcManager】 Postgresで forUpdateNowait()が使えない
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2008年 3月 18日 (火) 03:30:07 JST
小林 (koichik) です.
Date: Mon, 17 Mar 2008 22:15:44 +0900
From: [E-MAIL ADDRESS DELETED]
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:13308] 【JdbcManager】 Postgresで forUpdateNowait()が使えない
> jdbcManegerを利用しているのですが、.forUpdateNowait() メソッドが利用できません。
>
> 以下のようなエラーが表示されます。
>
> Throwable:java.lang.UnsupportedOperationException: [ESSR0748]エンティティ(TTestEntity)の検索にFOR UPDATE NOWAITが指定されましたが、DBMS(postgre)ではサポートされていません。
>
> しかしながら、Postgresは以下のSQLが通るのでnowaitをサポートしている様に思えます。
> select * from t_test for update nowait
こちらで軽く調べた限りだと,PostgreSQL 8.1 から
nowait がサポートされているようですね.
今のところ,PostgreDialect の対象バージョンを
明確にしていないのですが,8.0 以前はもうほとんど
使われていないということであれば,PostgreDialect は
8.1 以降限定ということでnowait をサポートしても
いいかもしれません.
しかし,8.0 以前もまだ多く利用されているなら,
PostgreDialect では nowait をサポートせず,
8.1 以降用に Postgre81Dialect とか新たに作って
対応するか,ということになると思います.
とはいえ,8.1 用,8.2 用,8.3 用...
という調子で各バージョン毎に対応する Dialect を
こちらで用意するのも大変というか無理があるので,
PostgreSQL を利用している人から 8.1 用とか 8.2 用の
Dialect を提供していただければ,それを S2JDBC に
含めますよ,というのが現実的かも.
他の RDBMS も同じですが.
--
<component name="koichik">
<property name="fullName">"Koichi Kobayashi"</property>
<property name="email">"[E-MAIL ADDRESS DELETED]"</property>
<property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
Seasar-user メーリングリストの案内