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

fujihara [E-MAIL ADDRESS DELETED]
2007年 6月 28日 (木) 20:38:51 JST


fujiharaといいます。

Seasar2で社内システムの開発に当たっています。

Churaプロジェクト(Teeda+S2DAO)でプロジェクト作成して
複数テーブルのJOINのSQLを書きEntityを作成して
DAOを作成してSELECTとしたところ

[ESSR0072]SQLで例外(SQL=[], Message=[Table 'roaso_db.rsbs007data' doesn't 
exist], ErrorCode=1146, SQLState=42S02)が発生しました
org.seasar.framework.exception.SQLRuntimeException: [ESSR0072]SQLで例外(SQL=[], 
Message=[Table 'roaso_db.rsbs007data' doesn't exist], ErrorCode=1146, 
SQLState=42S02)が発生しました
  at org.seasar.extension.jdbc.util.DatabaseMetaDataUtil#addPrimaryKeys 
(DatabaseMetaDataUtil.java#96)
  at org.seasar.extension.jdbc.util.DatabaseMetaDataUtil#getPrimaryKeySet 
(DatabaseMetaDataUtil.java#58)
  at org.seasar.dao.impl.BeanMetaDataImpl#setupPrimaryKey 
(BeanMetaDataImpl.java#328)

DAOの内容
-------------------------------------------
package jp.roaso.dao;

import jp.roaso.entity.Rsbs007data;

import org.seasar.dao.annotation.tiger.Arguments;
import org.seasar.dao.annotation.tiger.S2Dao;

@S2Dao(bean=Rsbs007data.class)
public interface Rsbs007dataDao {

 @Arguments({"usrId","usrName"})
 public Rsbs007data[] getPageData(String usrId, String usrName);
}
---------------------------------------------


Entityの内容
---------------------------------------------
package jp.roaso.entity;

import org.seasar.dao.annotation.tiger.Column;

public class Rsbs007data {

 private String usrId;

 private String usrName;

 private String passwd;

 private String usrMailaddr;

 private Integer registFlg;

 private Integer tantoKbn;

 private Integer usrGrpId;

 private String usrGrpname;

 @Column("USR_ID")
 public String getUsrId() {
  return usrId;
 }

 public void setUsrId(String usrId) {
  this.usrId = usrId;
 }

略

 @Column("USR_GRP_NAME")
 public String getUsrGrpname() {
  return usrGrpname;
 }

 public void setUsrGrpname(String usrGrpname) {
  this.usrGrpname = usrGrpname;
 }

}
---------------------------------------------


SQLの内容
---------------------------------------------
SELECT
    A.USR_ID,
    A.USR_NAME,
    A.PASSWD,
    A.USR_MAILADDR,
    A.REGIST_FLG,
    A.TANTO_KBN,
    C.USR_GRP_ID,
    C.USR_GRP_NAME
FROM
    Usrmst AS A,
    Usrgrpassigned AS B,
    Usrgrp AS C
WHERE
    A.USR_ID like /*usrId*/'%%' AND
    A.USR_NAME like /*usrName*/'%%' AND
    A.USR_ID = B.USR_ID AND
    B.USR_GRP_ID = C.USR_GRP_ID

---------------------------------------------

三つのテーブルをジョインしています。
テーブルが無いといってるのは分かるのですが回避策が
いろいろやってもわかりません。
通常自動生成してくれるDAOはテーブル名と関連づいた
名前になっていますが複数テーブルをJOINした場合の名前は
規定されているのでしょうか?
テーブルアノテーションも試しましたがよく分かりません。

なにとぞご教授願います。
以上、宜しくお願いします。

 コンピュータメネージメント株式会社
 fujihara / [E-MAIL ADDRESS DELETED] 



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