[Seasar-user:1757] Re: アンダーバーを含むカラム名の自動マッピングについて
Yasuo Higa
higa
2005年 4月 6日 (水) 19:07:20 JST
ひがです。
>
> > 縣です。
> >
> > >S2Dao1.0.25
> > >-カラム名に_がある場合でも自動的にマッピング
> > > できるようにしました。S2.2.6が必要です。
> >
> > S2Dao1.0.25の_がある場合の自動マッピングについて要望です。
> >
> > 自動マッピングが標準機能として実装されて、非常に助かっています。
> > しかし、TABLEアノテーションで指定されたテーブル以外のカラムでは、
> > 自動的にマッピングされないようなので、ちょっと困っています。
> >
> 取り込みました。
> 次のバージョンで反映されます。
ちょっと補足すると、今のバージョンなら上記の場合、SQLファイルを
手書きしていると思うので、正直ASで別名つけろでもいいかなと思ったのですが、
将来のバージョンで、SECONDARY_TABLEアノテーションが追加されるはずなので、
その絡みもあって対応しました。
SECONDARY_TABLEアノテーションとは、EJB3(Kuina)の先取りですが、
public static final String SECONDARY_TABLE_エイリアス名 = "テーブル名";
という風に定義しておき、SECONDARY_TABLEに存在するカラム名が
プロパティとして存在するなら、自動的にジョインして値をとってきてくれる
というものです。
例えば、AとBがN:1、BとCがN:1でマッピングされていて、
A(BID)、B(BID,CID)、C(CID)のような関係だとすると()の中はカラム名
SECONDARY_TABLE_b = "B";
SECONDARY_TABLE_c = "C";
SECONDARY_TABLE_c_RELKEYS = "b.cid:cid";
のようにすることで、ネストしたN:1のテーブルのデータも
SQLを書かずに取得できるようになります。
A(BID,CID)、B(BID)、C(CID)のような関係だと
SECONDARY_TABLE_b = "B";
SECONDARY_TABLE_c = "C";
だけでOK。
ジョインはデフォルトだとLEFT OUTERジョインになります。
ジョイン部分だけを明示的に書くことも可能にする予定。
いつまでにというのは聞かないでください。(笑)
---
ひがやすを(http://d.hatena.ne.jp/higayasuo/)
Seasar-user メーリングリストの案内