[Seasar-user:7450] [S2Dao] Sybase対応依頼

Kazuhiro Mizuno [E-MAIL ADDRESS DELETED]
2007年 4月 26日 (木) 15:16:12 JST


水野と申します。
いつもお世話になっております。

現在、あるプロジェクトでs2-dao-1.0.41-SNAPSHOTを使用しております。
このプロジェクトでは、データベースにSybaseを使用しているのですが、
SQLの自動生成でエラーが出ておりました。
以下にその現象を記します。

プライマリキー列の属性をIDENTITY(自動キー生成)と定義し、
エンティティの該当するプライマリキーのセッターに
@Id(value = IdType.SEQUENCE, sequenceName = "シーケンス名")
もしくは、
@Id(value = IdType.Identity) を設定して、
対応するDaoからinsert を実行したところ、例外が発生しました。

S2DaoはSybaseには対応していないとの事で、
以下の1.〜3.の対応を実施したところ、現象は解決しました。

1. S2Daoの org.seasar.dao.dbmsパッケージにSybaseクラスを作成し、
 getSuffix() と getIdentitySelectString() を実装。

2. S2Daoに同梱されているdbms.properties に、
 java.sql.DatabaseMetaData#getDatabaseProductName()が返す値と
 1.にて作成したクラスの完全限定名とのマッピング設定を追加。

3. 該当エンティティのIdアノテーションの IdTypeをIdentityにする。
   @Id(value = IdType.Identity)
    public void setPkey(Integer pkey) {
        this.pkey = pkey;
    }

本メールに、作成・修正したSybase.javaと、dbms.propertiesを添付致します。


現在、いくつかのプロジェクトでSybaseを使用しておりますので、
S2Daoで正式に対応して頂ければと考えております。


/以上です。宜しくお願い致します。
-------------- next part --------------
文字コード指定の無い添付文書を保管しました...
名前: dbms.properties
URL:  http://ml.seasar.org/archives/seasar-user/attachments/20070426/0d80f2e4/attachment.pl 
-------------- next part --------------
文字コード指定の無い添付文書を保管しました...
名前: Sybase.java
URL:  http://ml.seasar.org/archives/seasar-user/attachments/20070426/0d80f2e4/attachment-0001.pl 


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