This is a cache of http://dbflute.seasar.org/ja/oldmigration/migrate-0898to0899.html. It is a snapshot of the page at 2024-11-13T00:59:43.115+0000.
DBFlute : Migration : 0.8.9.9

バージョン移行{0.8.9.8 to 0.8.9.9}

環境上の注意点

Sql2Entityも一緒に *いつもの注意点

バージョンアップした際は、GenerateだけでなくSql2Entityも実行して下さい。

DBFluteConfigのロックをDIコンテナ初期化前は解除

DBFluteConfigのロックのDIコンテナ初期化前の状態が変わります。

今までもこれからも、DIコンテナが初期化されたときにロックされるのは同じです。 DBFluteConfigは基本的にDIコンテナに初期化されるべきものということで、それに合わせてロックも初期化前は解除しておくようにしました。 既にロック解除のプログラムを書いていてもそのまま動作するので特に意識する必要はありません(削除できるなら削除してOKです)。

実装上の注意点

orQuery改めorScopeQuery

orQueryにて仕様バグがありましたので、仕様を変えて新たにorScopeQueryという機能に改めました。経緯について詳しくは "DBFluteユーザの集い" をご覧下さい。

変わった点は "or条件をくっ付ける" だったのが、"orの範囲を指定する" というようになった点です。

ex) 旧方式: MemberAccout and (Birthdate or MemberName or MemberId)
MemberCB cb = new MemberCB();
cb.Query().SetMemberAccount_Equal("XXX"); 
cb.Query().SetBirthdate_Equal(currentDate);
cb.OrScopeQuery(delegate(MemberCB orCB) {
    orCB.Query().SetMemberName_PrefixSearch("J");
    orCB.Query().SetMemberId_Equal(3);
});

    ↓↓↓

ex) 新方式: MemberAccout and (Birthdate or MemberName or MemberId)
MemberCB cb = new MemberCB();
cb.Query().SetMemberAccount_Equal("XXX");
cb.OrScopeQuery(delegate(MemberCB orCB) {
    orCB.Query().SetBirthdate_Equal(currentDate);
    orCB.Query().SetMemberName_PrefixSearch("J");
    orCB.Query().SetMemberId_Equal(3);
});

orQuery()というメソッドは完全に無くなっており、移行するとこの機能を利用している箇所がコンパイルエラーになります。 影響反映がわかるようにわざとそのようにしております。