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