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

Kazuhiro Mizuno [E-MAIL ADDRESS DELETED]
2007年 4月 26日 (木) 18:05:37 JST


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

ブランチからs2dao-1.0.x を取得し、
s2-dao-1.0.43-SNAPSHOT.jar にて動作確認を行い、
稼動に問題が無い事が確認できました。
迅速な対応、どうもありがとうございました。

ただ、確認開始時、本件とは関係無い(であろう)箇所で
エラーが出ましたので、ご報告だけさせて頂きます。

ブランチからS2Daoの最新のリビジョンを取得してビルドし、
s2-dao-1.0.43-SNAPSHOT.jar で、動作確認を行いました。
このとき、S2Dao Tiger は以前と同じ jarファイル、
s2-dao-1.0.41-SNAPSHOT.jar を使用しておりました。

上記環境で実行した際、添付のStackTraceが出力されました。
ただ、S2Dao Tiger のjar を s2-dao-tiger-1.0.43-SNAPSHOT.jar に
変更して実行したところ、期待する動作が確認できましたので、
依頼させて頂いた内容とは、無関係と判断しております。
ご参考までに、Sybase対応を行った s2-dao-1.0.41-SNAPSHOT.jar と、
s2-dao-tiger-1.0.41-SNAPSHOT.jar の組み合わせでは、
問題なく動作していた事をご報告させて頂きます。


本件の対応、誠にありがとうございました。
今後とも、よろしくお願い致します。

taichi sato wrote:
> 太一です。
> 
> ご協力ありがとうございます。
> 
> 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 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
-------------- next part --------------
文字コード指定の無い添付文書を保管しました...
名前: [StackTrace]s2dao.txt
URL:  http://ml.seasar.org/archives/seasar-user/attachments/20070426/3a4a313c/attachment.txt 


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