[Seasar-user:8795] Re: 複数テーブルのJOIN読込について

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 6月 29日 (金) 01:30:23 JST


小林 (koichik) です.

S2Dao はほとんど触ったことがないので多少 (?)
ウソが混じってるかもしれませんが...

Date:    Thu, 28 Jun 2007 20:38:51 +0900
From:    "fujihara" <[E-MAIL ADDRESS DELETED]>
To:      Seasar2 メーリングリスト <[E-MAIL ADDRESS DELETED]>
Subject: [Seasar-user:8791] 複数テーブルのJOIN読込について

> 三つのテーブルをジョインしています。
> テーブルが無いといってるのは分かるのですが回避策が
> いろいろやってもわかりません。

ジョインは関係ないですね.
SQL ファイルが使われる前に例外が飛んでいます.

Rsbs007data というクラスをエンティティとして
定義していますが,これに相当するテーブルは
あるのでしょうか?
エンティティというのはテーブルにマッピングされる
ものなので,対応するテーブルが必要です.

SQL ファイルを見ると Usrmst,Usrgrpassigned,
Usrgrp といったテーブルはあるようですが,名前の
付け方から想像するに Rsbs007data というテーブルは
存在しないのでは?

もし Rsbs007data というテーブルがないなら,
Rsbs007data はエンティティではなく Dto です.
@S2Dao アノテーションで Dao と関連づけるのは
エンティティなので,Dto である Rsbs007data は
指定できません.

とりあえず Usrmst をエンティティとして定義し,
UsrmstDao を作成し,UsrmstDao のメソッドとして
getPageData() を作成するといいのではないでしょうか.

public class Usrmst {
  private String usrId;
  private String usrName;
  private String passwd;
  private String usrMailaddr;
  private Integer registFlg;
  private Integer tantoKbn;

  // setters and getters
}

@S2Dao(bean=Usrmst.class)
public interface UsrmstDao {
  @Arguments({"usrId","usrName"})
  public Rsbs007data[] getPageData(String usrId, String usrName);
}

ただし,戻り値がエンティティではなく DTO に
なるので,S2Dao 1.0.43 以降が必要みたいです.



-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>




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