[Seasar-user:16287] Re: 【 S2Dao 】複数テーブルを結合してデータを取得した場合の戻り値について

Toshihiro Nakamura [E-MAIL ADDRESS DELETED]
2008年 11月 13日 (木) 10:03:55 JST


中村(taedium)です。

> <http://s2dao.seasar.org/ja/s2dao.html#N1Mapping>に従って、
> 外部ファイルを使用せずに定数で同じSQLを実行した場合は、
> 上記のEntityクラス(Saleline)に結合相手のEntityクラス(Product)を
> 変数として定義すれば、自動的にS2Daoがその変数に実行結果を格納してくれま
> した。
> 外部ファイルでも同じ動作としたいのですが、可能でしょうか。

RELKEYSアノテーション(@RelationのrelationKey )に
指定するキーをSQLファイルのSELECT句に含めれば、同じような動作をします。
含めるのは、N側のキーと1側のキーどちらか一方で大丈夫です。

この方法でも構いませんが、
複数テーブルのカラムを同時に取得したい場合は、

  public class SalelineDto extends Saleline {
      private String name;←PRODUCTテーブルの項目
  }

のように、結果セットごとにクラスを定義してしまって
もわかりやすいと思います。
(この例では、ベースとなるクラスを継承して、
新しいクラスを定義しています。)

ただし、クラス数が増える、N対1を表せないなどの
デメリットがあります。

-- 
Nakamura Toshihiro <[E-MAIL ADDRESS DELETED]>



Seasar-user メーリングリストの案内