[Seasar-user:10316] Re: [DBFlute] 識別子が長すぎるを解決したい

Junichi Kato [E-MAIL ADDRESS DELETED]
2007年 9月 5日 (水) 07:35:44 JST


久保さん,
加藤です.

> 「dbfluteRelno4_n2.ACCOUNT_STATUS = 'A'」の条件を追加すると0件結果
> 
> 単純に考えると「ACCOUNT_STATUS = 'A'」の条件に合致するデータが
> 存在しないのではと考えられるが、

合致するデータはあります.

> しかし、SQLPlusにて、そのSQLを流すと1件取得できる。

はい.その通りです.

> <A>
> テーブル構造は
> 
> ADMINISTRATOR <--(FK) ADMINISTRATOR_CONFIG {1:1 }
> ADMINISTRATOR (FK)--> USER_ACCOUNT {*:1}
> USER_ACCOUNT  <--(FK) USER_ACCOUNT_CONFIG {1:1}
> 
> というような感じでよろしいですよね?

はい.そうです.

> 
> <B>
> 該当のSQLを、「外だしSQL」にして実行して結果が
> 取得できるかどうか確認して頂けますでしょうか?

はい.取得できました.
やり方としては,exdaoに,外だしSQLに対応するメソッドを定義してと,通常のS2Daoの使い方と同じです.
SQLは,以下を使いました.

SELECT
    ADMINISTRATOR.ADMINISTRATOR_ID,
    ADMINISTRATOR.ADMINISTRATOR_CODE,
    ADMINISTRATOR.USER_ACCOUNT_ID,
    ADMINISTRATOR.TEST_TYPE,
    ADMINISTRATOR.CREATER_ID,
    ADMINISTRATOR.UPDATER_ID,
    ADMINISTRATOR.CREATE_DATE,
    ADMINISTRATOR.UPDATE_DATE
FROM
    ADMINISTRATOR left outer join ADMINISTRATOR_CONFIG dbfluteRelno3 on ADMINISTRATOR.ADMINISTRATOR_ID = dbfluteRelno3.ADMINISTRATOR_ID left outer join USER_ACCOUNT dbfluteRelno0 on ADMINISTRATOR.USER_ACCOUNT_ID = dbfluteRelno0.USER_ACCOUNT_ID left outer join USER_ACCOUNT_CONFIG dbfluteRelno4_n2 on dbfluteRelno0.USER_ACCOUNT_ID = dbfluteRelno4_n2.USER_ACCOUNT_ID
WHERE
    ADMINISTRATOR.ADMINISTRATOR_CODE = 'ADMIN1' AND
    dbfluteRelno3.DISABLE = 'N' AND
    dbfluteRelno4_n2.ACCOUNT_STATUS = 'A'

> <C>
> cb.query().setAdministratorCode_Equal("ADMIN1");
> cb.query().queryAdministratorConfigAsOne().setDisable_Equal_No();
> cb.query().queryUserAccountByUserAccountId()
> 		.queryUserAccountConfigByUserAccountIdAsOne()
> 		.setAccountStatus_Equal_Active();
> 
> の「cb.toString()」を見せて頂けませんでしょうか?

/* df:includeSelectClause */  from ADMINISTRATOR left outer join ADMINISTRATOR_CONFIG AdministratorConfigAsOne on ADMINISTRATOR.ADMINISTRATOR_ID = AdministratorConfigAsOne.ADMINISTRATOR_ID left outer join USER_ACCOUNT UserAccountByUserAccountId on ADMINISTRATOR.USER_ACCOUNT_ID = UserAccountByUserAccountId.USER_ACCOUNT_ID left outer join USER_ACCOUNT_CONFIG dbfluteRelno4_n2 on UserAccountByUserAccountId.USER_ACCOUNT_ID = dbfluteRelno4_n2.USER_ACCOUNT_ID  where ADMINISTRATOR.ADMINISTRATOR_CODE = /*dto.conditionQuery.administratorCode.equal*/null and AdministratorConfigAsOne.DISABLE = /*dto.conditionQuery.conditionQueryAdministratorConfigAsOne.disable.equal*/null and dbfluteRelno4_n2.ACCOUNT_STATUS = /*dto.conditionQuery.conditionQueryUserAccountByUserAccountId.conditionQueryUserAccountConfigByUserAccountIdAsOne.accountStatus.equal*/null 

となっております.

よろしくお願いします.

───────────────────────────────
 株式会社 グランテック
 代表取締役社長
 加藤 潤一 Junichi Kato

〒154-0012
東京都世田谷区駒沢2-16-1 サンドー駒沢ビル4F
TEL 050-5538-2383  FAX 03-3487-7211
HP : http://www.grandtech.jp/
BLOG : http://d.hatena.ne.jp/j5ik2o/
E-MAIL : [E-MAIL ADDRESS DELETED]




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