This is a cache of http://dbflute.seasar.org/ja/environment/upgrade/migration/migrate0963to0964.html. It is a snapshot of the page at 2024-11-13T00:11:25.836+0000.
移行 0.9.6.3 to 0.9.6.4 | DBFlute

移行 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" に移行するようにして下さい。

実装上の注意点

特になし