移行 0.8.9.8 to 0.8.9.9
お約束の注意点
- 新しいクラスのプロジェクトへの追加
- 新しいクラスがあるかもしれないので、追加を忘れずに (Koropokkur.NETの利用を推奨)
- タスクを実行し忘れないように
- Generateタスクだけでなく、(外だしSQLがある場合は)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()というメソッドは完全に無くなっており、移行するとこの機能を利用している箇所がコンパイルエラーになります。 影響反映がわかるようにわざとそのようにしております。