[Seasar-user:13308] 【JdbcManager】 Postgresで forUpdateNowait()が使えない

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2008年 3月 17日 (月) 22:15:44 JST


関修康です、いつもお世話になっております。

Postgres8.2
Seasar2.4.23

jdbcManegerを利用しているのですが、.forUpdateNowait() メソッドが利用できません。

以下のようなエラーが表示されます。

Throwable:java.lang.UnsupportedOperationException: [ESSR0748]エンティティ(TTestEntity)の検索にFOR UPDATE NOWAITが指定されましたが、DBMS(postgre)ではサポートされていません。

しかしながら、Postgresは以下のSQLが通るのでnowaitをサポートしている様に思えます。
select * from t_test for update nowait

たぶん
org.seasar.extension.jdbc.dialect.PostgreDialect
の
    @Override
    public boolean supportsForUpdate(final SelectForUpdateType type, boolean withTarget)

    @Override
    public String getForUpdateString(final SelectForUpdateType type,
            final int waitSeconds, final Pair<String, String>... aliases)

のあたりを修正すれば良いとは思うのですが、
あえて実装をしていない等の理由があるのでしょうか?
(SQLが通るだけでは無くて他の条件を見てる?)

よろしければ本体側にて対応して頂ければと思ってメールさせて頂きました。

宜しくお願い致します。




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