[seasar-dev:642] Re: [S2Dao][S2Dao.NET]ID 属性の複数DBMS対応の修正について
Ryo Miyagi
rmiyax @ yahoo.co.jp
2007年 2月 18日 (日) 01:53:03 JST
宮城です。
> Idアノテーションが取れてしまうので、S2Dao.javaは
> 上記記述の場合dbmsが一致している場合だけIdアノテーションを
> 返すよう修正したいと思っています。
Javaだとアノテーションがとれることに気が付いておりませんでした。
S2Dao.NETでは、dbmsが一致しているIdを優先して返すようにしています。
あと、S2Dao.Javaで
@Ids({
@Id(value = IdType.IDENTITY)
@Id(value = IdType.SEQUENCE, sequenceName = "myseq")
@Id(value = IdType.SEQUENCE, sequenceName = "myseq", dbms="oracle")
})
のような記述をした場合、
S2Dao.NETでは、次の優先順位でIDを返すようにしています。
1. @ IDで指定したdbmsが実行中のDBMSと一致。
2. @ IDで指定したIDTypeが実行中のDBMSで対応。
例:
・IDENTITYに対応しているMySQLで実行した場合、
@Id(value = IdType.IDENTITY)を返す。
・SEQUENCEに対応しているPostgreSQLで実行した場合、
@Id(value = IdType.SEQUENCE, sequenceName = "myseq")を返す。
・SEQUENCEに対応しているOracleで実行した場合、
@Id(value = IdType.SEQUENCE, sequenceName = "myseq", dbms="oracle")を返す。
・IDENTITYとSEQUENCEに対応しているH2で実行した場合、
@Id(value = IdType.SEQUENCE, sequenceName = "myseq")を返す。
S2Dao.Javaでは、どうしますか?
なるべく仕様をあわせたほうがいいので、
S2Dao.NETはS2Dao.Javaの仕様に合わせる形になると思います。
--------------------------------------
Start Yahoo! Auction now! Check out the cool campaign
http://pr.mail.yahoo.co.jp/auction/
Seasar-dev メーリングリストの案内