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