[seasar-s2dao-dev:124] Fw: [seasar-dev:637] Re: [S2Dao][S2Dao.NET]ID 属性の複数DBMS対応

Seto Azusa azusa @ fieldnotes.jp
2007年 1月 25日 (木) 19:42:04 JST


せとあずさ@風邪です。

#不勉強でお騒がせしております>ひがさん

Begin forwarded message:

Date: Wed, 24 Jan 2007 23:10:13 +0900
From: Ryo Miyagi <rmiyax @ yahoo.co.jp>
To: seasar-dev @ ml.seasar.org
Subject: [seasar-dev:637] Re: [S2Dao][S2Dao.NET]ID 属性の複数DBMS対応


宮城です。

> できまーす。
> @Sqls({
>   @Sql(query="〜", dbms="oracle"),
>   @Sql(query="〜", dbms="mysql")
> })

それならTigerアノテーションでも複数DBMSの切り替えができますね。

例
@Ids({
   @Id(value = IdType.IDENTITY, dbms = "mysql")
   @Id(value = IdType.SEQUENCE, sequenceName = "myseq", dbms = "oracle")
})

S2Dao.NETのほうは、
次の仕事でID属性の複数DBMSが必要になるので実装したいと思います。

----

S2Dao.javaは仕様を以下のように考えています。といいつつ実装は終わってるのですが...

○インターフェース変更
org.seasar.dao.BeanAnnotationReader#String getId(PropertyDesc pd)
↓
org.seasar.dao.BeanAnnotationReader#String getId(PropertyDesc pd,String dbms)

#インターフェース変えないで済ます方法ってあります?

○定数アノテーション
     public static final String id_mysql_ID = "identity";
     public static final String id_oracle_ID = "sequence, sequenceName=myseq";

     public static final String id_ID = "sequence, sequenceName=myseq";

※aaa_oracle なんてプロパティがある場合は、aaa_oracle_oracle_IDになります。
#仕様変更ですね...

○Tigerアノテーション
@Ids({
   @Id(value = IdType.IDENTITY, dbms = "mysql")
   @Id(value = IdType.SEQUENCE, sequenceName = "myseq", dbms = "oracle")
})

@Id(value = IdType.IDENTITY)

どうでしょう?

-- 
せとあずさ
azusa @ fieldnotes.jp
http://www.fieldnotes.jp/d/



seasar-s2dao-dev メーリングリストの案内