[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 メーリングリストの案内