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

taichi sato [E-MAIL ADDRESS DELETED]
2007年 4月 26日 (木) 15:35:36 JST


太一です。

ご協力ありがとうございます。

s2dao-1.0.x

のブランチにリソースを取り込みました。
お手数ですが、動作確認をお願いできますでしょうか?

07/04/26 に Kazuhiro Mizuno<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 水野と申します。
> いつもお世話になっております。
>
> 現在、あるプロジェクトで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で正式に対応して頂ければと考えております。
>
>
> /以上です。宜しくお願い致します。
>
> =org.seasar.dao.dbms.Standard
> Oracle=org.seasar.dao.dbms.Oracle
> PostgreSQL=org.seasar.dao.dbms.PostgreSQL
> HSQL\ Database\ Engine=org.seasar.dao.dbms.HSQL
> Firebird=org.seasar.dao.dbms.Firebird
> Microsoft\ SQL\ Server=org.seasar.dao.dbms.MSSQLServer
> MySQL=org.seasar.dao.dbms.MySQL
> DB2/LINUX=org.seasar.dao.dbms.DB2
> DB2/NT=org.seasar.dao.dbms.DB2
> DB2/UDB=org.seasar.dao.dbms.DB2
> DB2/6000=org.seasar.dao.dbms.DB2
> DB2/AIX=org.seasar.dao.dbms.DB2
> DB2/AIX64=org.seasar.dao.dbms.DB2
> DB2/HPUX=org.seasar.dao.dbms.DB2
> DB2/HP=org.seasar.dao.dbms.DB2
> DB2/EEE=org.seasar.dao.dbms.DB2
> DB2/CS=org.seasar.dao.dbms.DB2
> DB2/SUN=org.seasar.dao.dbms.DB2
> DB2/PE=org.seasar.dao.dbms.DB2
> DB2/2=org.seasar.dao.dbms.DB2
> DB2/PTX=org.seasar.dao.dbms.DB2
> DB2/SCO=org.seasar.dao.dbms.DB2
> SAP\ DB=org.seasar.dao.dbms.MaxDB
> Apache\ Derby=org.seasar.dao.dbms.Derby
> H2=org.seasar.dao.dbms.H2
> Adaptive\ Server\ Enterprise=org.seasar.dao.dbms.Sybase
>
> package org.seasar.dao.dbms;
>
> public class Sybase extends Standard {
>
>     /**
>      * @see org.seasar.dao.Dbms#getSuffix()
>      */
>     public String getSuffix() {
>         return "_sybase";
>     }
>
>     public String getIdentitySelectString() {
>         return "SELECT @@IDENTITY";
>     }
> }
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
>



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