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() メソッドを直接呼び出した場合は、このバージョンから全角のパーセントはエスケープされないのでご注意下さい。