This is a cache of http://dbflute.seasar.org/ja/environment/upgrade/migration/migrate0983to0984.html. It is a snapshot of the page at 2024-11-13T00:15:43.357+0000.
移行 0.9.8.3 to 0.9.8.4 | DBFlute

移行 0.9.8.3 to 0.9.8.4

お約束の注意点

古いバージョンの削除
古いバージョンのDBFluteランタイム(JAR)が[WEB-INF/lib]の下などに残らないように
タスクを実行し忘れないように
Generateタスクだけでなく、(外だしSQLがある場合は)Sql2Entityタスクも実行

環境上の注意点

DataXlsTemplate は LoadDataReverse に

Docタスクの DataXlsTemplate は LoadDataReverse として再出発することになりました。

AlterCheckが生まれ変わり

前バージョンで導入された AlterCheck が、より現場フィットになるように改善されています。

実装上の注意点

SQLServerの正規表現ワイルドカードをエスケープ

SQLServer の LikeSearch では、正規表現ワイルドカードが利用できます。"[a-b]" という風に [ と ] で囲った中で正規表現が利用できます。ConditionBean および ParameterBean で行われている一致の方向が決まったときの自動のエスケープにおいて、 その括弧もエスケープをするようにしました。

これにて、アプリで自前でエスケープする必要はありませんが、このバージョンにアップグレードする際に既にエスケープ処理が入っていると、 二重でエスケープされてしまうので、自前のエスケープは基本的に除去する必要があります。

LikeSearchOptionで特殊ワイルドカードは実行時解決

Oracle と DB2 において、LikeSearchOption を ConditionBean や ParameterBean ではなく、 単なるエスケープのための文字列ユーティリティクラスとして利用している方のみ意識する項目です。 例えば、LikeSearchOption.generateRealValue() というメソッドに心当たりがない方は意識する必要はありません。

LikeSearchOption のクラス自体にワイルドカードをエスケープする処理が存在しますが、 Oracleの全角のパーセントやSQLServerの正規表現括弧など、DBMS独自のワイルドカードのエスケープは Behavior で検索処理を実行したときに解決されます。

それまでのバージョンでは、どのDBMSでも全角のパーセントを固定でエスケープしていましたが、 ワイルドカードでない文字をエスケープした場合にエラーになるDBMSが若干存在するため(Apache Derbyなど)、 DBMS独自のワイルドカードをエスケープするかどうかの判定を精密に行うために Behavior の中に移行しました。

よって、(Oracle, DB2 にて) LikeSearchOption を単なるユーティリティクラスとして利用している場合、 つまり option.generateRealValue() メソッドを直接呼び出した場合は、このバージョンから全角のパーセントはエスケープされないのでご注意下さい。