[seasar-s2dao-dev:142] Fw: [seasar-dev:642] Re: [S2Dao][S2Dao.NET]ID 属性の複数DBMS対応の修正について

Seto Azusa azusa @ fieldnotes.jp
2007年 2月 18日 (日) 02:32:48 JST


せとあずさです。

表題の件ですが、S2Dao.NETの以下の仕様にS2Dao.javaも揃えたいのですが、
これを実現するためには
org.seasar.dao.BeanAnnotationReader#getId のシグネチャ
getId(PropertyDesc, String)を
getId(PropertyDesc, Dbms)に変更する必要があります。

# Dbms#getIdentitySelectString()と
# Dbms#getSequenceNextValString(String)の戻り値で判断。

# org.seasar.dao.dbms.Standardが渡ってきたらnullかな?

皆様どう思われますか?

>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")を返す。


Begin forwarded message:

Date: Sun, 18 Feb 2007 01:53:03 +0900
From: Ryo Miyagi <rmiyax @ yahoo.co.jp>
To: seasar-dev @ ml.seasar.org
Subject: [seasar-dev:642] Re: [S2Dao][S2Dao.NET]ID 属性の複数DBMS対応の修正について


宮城です。

> 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 mailing list
Seasar-dev @ ml.seasar.org
https://ml.seasar.org/mailman/listinfo/seasar-dev


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



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