[Seasar-user:8584] [DBFlute 0.4.6] 子テーブルの項目に対する条件指定について

小谷圭 [E-MAIL ADDRESS DELETED]
2007年 6月 22日 (金) 13:25:49 JST


お世話になっております。
小谷です。

子テーブル以下の項目に対して条件設定やorder byを使いたい場合についての
質問があります。

子テーブルの項目を使ってorder byを使用することは可能でしょうか?

バージョンは、まだ0.4.6を使ってしまっています。
(以前質問させていただいたときに最新のSNAPSHOTを用意していただいていたのですが、
まだ移行しておりません。申し訳ありません。)

現在やろうとしていることとして、
DBFluteのConditionBean,ConditionQueryを使って
子テーブルの項目を条件とした検索処理を行ないたいと考えております。

そこでソースコードを下記のように書いてみました。
以下の条件、ソートを設定し、検索結果を取得しようとしています。
・孫テーブル1のVALUEという列が「aiueo」
・子テーブルのAAA_DATETIME列が2000/1/1 09:00:00〜2000/2/2 09:30:00
・孫テーブル2のVERSION_NO昇順、子テーブルのDISPLARY_ORDERの昇順でソート

//  ## Arrange ##
        FromToOption opt = new FromToOption();
        HogeGrandChild1CB grandChildCB1 = new HogeGrandChild1CB ();
        grandChildCB1.query().setValue_Equal("aiueo");
        HogeGrandChild2CB grandChildCB2 = new HogeGrandChild2CB ();
        grandChildCB2.query().addOrderBy_VersionNo_Asc();

        HogeChildCB childCB = new HogeChildCB ();

        childCB.query().setAaaDatetime_FromTo(
                Timestamp.valueOf("2000-01-01 09:00:00"),
Timestamp.valueOf("2000-02-02
09:30:00"), opt);
        childCB.query().addOrderBy_DisplayOrder_Asc();
        childCB.query().setUid_InScopeSubQuery_HogeGrandChild1List(
grandChild1CB.query());
        childCB.query().setUid_InScopeSubQuery_HogeGrandChild2List(
grandChild2CB.query());

        HogeCB hogeCB = new HogeCB();
        hogeCB.query().setUid_InScopeSubQuery_HogeChildList(childCB.query
());

        //  ## Act ##
        List<Hoge> resultList = hogeBhv.delegateSelectList(hogeCB);

実行してみたところ以下のようなSQLが出力されました。
select (省略)
from hoge
where hoge.uid in (
    select (省略)
    from hoge_child
    where hoge_child.apply_datetime >= '2000-01-01 09.00.00'
        and hoge_child.apply_datetime <= '2000-02-02 09.30.00'
        and hoge_child.uid in (
    select (省略)
    from hoge_grand_child1
    where hoge_grand_child1.value = 'aiueo')
    and hogeChild.uid in (
        select (省略)
        from hoge_grand_child2  )
    )

指定したorder by句が出力されていないようでした。

そもそもConditionBeanの設定の仕方は正しいのか、という点と
子テーブル以下の項目を使ったorder byは可能なのか、という点について
お教えいただけたらと思います。

よろしくお願い致します。

=========================================
小谷 圭
[E-MAIL ADDRESS DELETED]
=========================================
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: http://ml.seasar.org/archives/seasar-user/attachments/20070622/74ef8c0a/attachment.html 


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