[seasar-s2dao-dev:367] Re: メタデータを使わずにプロパティからカラムの名前を決定できるようにする

Hirotaka HONMA [E-MAIL ADDRESS DELETED]
2007年 8月 3日 (金) 11:48:17 JST


ホンマ@茅場町です。

on Fri, 03 Aug 2007 01:45:10 +0900
in [seasar-s2dao-dev:365] Re: メタデータを使わずにプロパティからカラムの名前を決定できるようにする
Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]> wrote:

> > > > Beanに複数のIDアノテーションを持たせるようにして、
> > > > それぞれに指定された方法で採番してしまってもいいのかもしれないですね。
> > >
> > > 「メインのID」のみをPKにすれば良いと思うのですけれど。
> > > (S2Daoが解決する問題なのかなあ...)
> > 
> >  うぅ、私の周辺では複合主キーの方が多いようです。。。
> 
> 現在IDアノテーションがついているとメタデータにアクセスしませんが、
> IDアノテーションが使えるのは単一の主キーの場合だけです。
> そこでIDアノテーションを複合主キーのときにも使えるようにして
> 複合主キーの場合にもメタデータにアクセスしないようにしたい、
> というのが第一の狙いです。
> 
> そうすると次のようなコードが書けるようになります。
> それぞれのIDアノテーションにIdTypeを指定できるので
> それに従って採番するのが自然かなと思います。
> 
> @Id(value=IdType.SEQUENCE, sequenceName="HOGE_SEQ")
> public setAaaId(...){}
> 
> @Id(value=IdType.ASSIGNED)
> public setBbbId(...){}

まだよくわかっていないので整理させてください。

このケースでは、

  AAA BBB XXX
  --- --- ---
    1   1   A
    2   2   B
    3   3   C
    4   4   D

みたいな採番になりませんか? AAA・BBBともにIDアノテーションが
付いていますから。
そうだとAAAだけでユニークになりますから、「複合主キーで一部
のキーはシーケンスから採番」というテーブルにする必要性が無い
のではと思ったのです。
(採番している方だけを主キーにすれば良いのでは、と。)

もしくは、↓のようなレコードを作成したいのかもしれませんが、
S2Daoでどう実現したものか思いつきません :-)

  AAA BBB XXX
  --- --- ---
    1   1   A
    1   2   B
    1   3   C
    2   1   D
    2   2   E
    2   3   F



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