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