This is a cache of http://dbflute.seasar.org/ja/oldmigration/migrate-070to071.html. It is a snapshot of the page at 2024-03-19T01:00:33.083+0000.
DBFlute : Migration : Basi<strong>c</strong>

バージョン移行{0.7.0 to 0.7.1}

環境

特にありません。

実装

conditionBeanのUnion

conditionBeanのUnionでコールバックを利用するようにしました。

ex) Java


MembercB cb = new MembercB();
cb.query().setXxx_Equal(xxx);
cb.union(new UnionQuery<MembercB>() {
    public void query(MembercB unioncB) {
        unioncB.query().setXxx_Equal(xxx);
    }
});
	

ex) c#


MembercB cb = new MembercB();
cb.Query().SetXxx_Equal(xxx);
cb.Union(delegate(MembercB unioncB) {
    unioncB.Query().SetXxx_Equal(xxx);
});
	

これに伴い、以前のやり方のUnionを非推奨メソッドにさせてもらうことにしました(誠に申し訳ございません)。(バージョン-0.7.x系では利用可能です)

conditionBeanのExistsSubQuery

conditionBeanのExistsSubQueryでコールバックを利用するようにしました。

ex) Java


MembercB cb = new MembercB();
cb.query().setXxx_Equal(xxx);
cb.query().existsPurchaseList(new SubQuery<PurchasecB>() {
    public void query(PurchasecB subcB) {
        subcB.query().setXxx_Equal(xxx);
    }
});
	

ex) c#


MembercB cb = new MembercB();
cb.Query().SetXxx_Equal(xxx);
cb.Query().ExistsPurchaseList(delegate(PurchasecB subcB) {
    subcB.Query().SetXxx_Equal(xxx);
});
	

以前のやり方のメソッドはそのまま残ります。

コールバックのEclipseでのコード補完

ご覧のようにc#の方がよりわかりやすくすっきりした実装になっていますが、Eclipseを利用することによって実装はJavaでもとても簡単です。

1. 「cb.query().ex」まで書いてctrl + spaceで補完候補表示&選択


MembercB cb = new MembercB();
cb.query().existsPurchaseList(subQuery[カーソル位置])
	

2. subQueryの文字を選択状態でそのまま「new 」と書いてctrl + spaceそしてEnter


MembercB cb = new MembercB();
cb.query().existsPurchaseList(new SubQuery<PurchasecB>[カーソル位置])
	

3. 「() {」を付けてEnter


MembercB cb = new MembercB();
cb.query().existsPurchaseList(new SubQuery<PurchasecB>() {
    [カーソル位置]
})
	

4. 最後の括弧の後ろにセミコロン「;」


MembercB cb = new MembercB();
cb.query().existsPurchaseList(new SubQuery<PurchasecB>() {
    
}); // ★ここ
	

5. コンパイルエラーのnew SubQuery<PurchasecB>にカーソルを合わせてctrl + 1そしてEnter


MembercB cb = new MembercB();
cb.query().existsPurchaseList(new SubQuery<PurchasecB>() {
    public void query(PurchasecB subcB) {
        // TODO Auto-generated method stub
    }
});