移行 0.9.6.3 to 0.9.6.4
お約束の注意点
- 古いバージョンの削除
- 古いバージョンのdbfluteランタイム(JAR)が[WEB-INF/lib]の下などに残らないように
- タスクを実行し忘れないように
- Generateタスクだけでなく、(外だしSQLがある場合は)Sql2Entityタスクも実行
環境上の注意点
AutoMapping機能で19桁以上はBigDecimalに
typeMappingMap.dfpropのAutoMapping機能で、19桁以上の場合の挙動が変わります。
- 今まで:19桁以上でもLong
- これから:19桁以上はBigDecimal
これは改善点です。19桁以上の場合は、Longは精度的に適していませんでした。 もし、19桁以上のNUMERIC(やDECIMAL)でLongで利用している場合は、該当箇所がコンパイルエラーになりますので、 そのコンパイルエラーを直すことで移行可能です。
また、外だしSQLで "sum関数" を利用したカラムのマッピングも "BigDecimal" になります。 対象のカラムが19桁未満でも、sum関数を利用するからには結果は19桁を超える可能性があるためです。 実際にデータベースからはメタ情報として最大の桁数が戻されています。どうしても移行出来ない場合は、 Sql2Entityの強制型指定を利用することで、Longにマッピングすることが可能です。
-- ##Long TARGET_COLUMN_NAME##
もし、全体としてどうしても移行出来ない場合は、"littleAdjustmentMap.dfprop" に以下のプロパティを "true" にすることで以前のバージョンと同じ挙動になります(19桁以上でもLong)。但し、これは推奨されません。
; isCompatibleAutoMappingOldStyle = true
columnExeptList改めcolumnExceptMap
"自動生成対象から除外するカラム" を指定する "databaseInfoMap.dfprop" の "columnExeptList" ですが、"どのテーブルのどのカラム" という指定ができない欠点がありました。これを改善し、新たに "columnExceptMap" として生まれ変わりました。
; columnExceptMap = map:{
; VENDOR_CHECK = list:{COLUMN_EXCEPT_TEST}
}
古いタイプの "columnExeptList" は廃止され、設定が残っている場合は例外(移行を促すメッセージ付き)になります。 もし、利用されている方は、"columnExceptMap" に移行するようにして下さい。
実装上の注意点
特になし