[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 メーリングリストの案内