[seasar-dev:632] Re: [S2Dao][S2Dao.NET]ID属性の複数DBMS対応
Ryo Miyagi
rmiyax @ yahoo.co.jp
2006年 12月 19日 (火) 23:56:12 JST
宮城です。
>> Projectにおいて、具体的にどのような状況でこの機能が必要か
>> 教えていただけますでしょうか?(例というか)
>業務システムで必要なケースはあまりないと思いますが、例えばオープンソースの
>ブログやSNSシステムを作り、DBはOracleかPostgresかMySQLのいずれかを選べます。
杉本さんの書かれたケースや
単一のパッケージで複数のDBMSに対応することを想定しています。
以前、S2Dao.NETを使用した分析系パッケージ開発では
パッケージ構成に応じてDBMSが切り替えられることが要件にあり、
通常版では、高価・高速なDBMSを
簡易版では、安価・中速なDBMSを
使うことを想定していました。
> ID属性をどのように変更するのでしょう?
次のように変更したいと考えています。
S2Dao.NET ID属性
[ID(IDType.IDENTITY, Seasar.Dao.KindOfDbms.MySQL)]
[ID(IDType.SEQUENCE, "myseq", Seasar.Dao.KindOfDbms.MySQL)]
public long MyId { .... }
S2Dao Tigerアノテーション
@Id(value = IdType.IDENTITY, dbms = "mysql")
@Id(value = IdType.SEQUENCE, sequenceName = "myseq", dbms = "oracle")
public long getMyId() { .... }
S2Dao 定数アノテーション
public static final String id_mysql_ID = "identity";
public static final String id_oracle_ID = "sequence, sequenceName=myseq";
public long getMyId() { .... }
ここまで書いて気づいたのですが、
S2Dao 定数アノテーションにmysql, oracle等のサフィックスを追加すると
プロパティ名とサフィックスの区別が付かない場合がありますね。
(例:プロパティ名がid_oracleの場合等)
また、S2Dao TigerアノテーションのSQLアノテーションは、
複数DBMSの切り替えに未対応のようです。
何か理由があったのでしょうか?
以上
--------------------------------------
Get the new Internet Explorer 7 optimized for Yahoo! JAPAN
http://pr.mail.yahoo.co.jp/ie/
Seasar-dev メーリングリストの案内