Java8対応のDBFluteのリリース。
DBFlute-1.1.7 です。
Change Log | DBFlute
(1.1.6からの移行の注意点は特になし)
今回は、dfprop で新しいプロパティ多く追加されています。
でも、それらどれも非常にマニアックではありますが...
# DBFlute Runtime, DBFlute Engine
# 両方ともアップグレードしないと、
# 自動生成クラスでコンパイルエラーになりますので、
# 両方のアップグレードお忘れなく。
repsAsDataManagerMap
replaceSchemaMap.dfpropにて指定できます。
ReplaceSchemaをデータ登録としてだけ使うことができます。
例えば、Flywayと連携する時に使えるかもしれません。
; repsAsDataManagerMap = map:{
; isUseRepsAsDataManager = true
}
でも、Flywayを使う時に、
必ず使うかというとそうではないと思います。
ローカル環境ではフルのReplaceSchemaで、
サーバー環境ではFlywayを使う、という風な住み分けに
なっていればこの機能は不要です。
ローカルでもFlywayを使うけど、
テストデータはReplaceSchemaを使いたい、
というような時に利用します。
databaseSubType
basicInfoMap.dfpropにて指定できます。
例えば、SQLServerを使うにしても LocalDB だと、
またちょっと動きを変える必要が出てきたりします。
具体的には...
ストアドプロシージャーやVIEWのdrop文で、
データベース名の修飾を付けるとエラーになるとか。
(将来変わるかもしれませんが)
そんなとき、subTypeOnDatabase に、
localdb と指定しておくと、
LocalDB用の挙動になってくれます。
; database = sqlserver
; subTypeOnDatabase = localdb
対応はまだちょっとだけですが、
将来的に色々と「同じDBでも種別によって違う」が
増えてきた時に、このプロパティを利用していきます。
conventionalTakeAssertMap
replaceSchemaMap.dfpropにて指定できます。
例えば、ReplaceSchemaにて...
"テストデータが一件もないテーブルがあったら落ちる"
というチェックをかけることができます。
テストデータなしで新しいテーブルが
どんどん追加されるのを防ぐことができます。
(最低でも一件はデータを作ってテーブル追加)
; conventionalTakeAssertMap = map:{
; emptyTableMap = map:{
; isFailure = true
; workableRepsEnvTypeList = list:{ut}
; tableExceptList = list:{}
; tableTargetList = list:{}
}
}
tableExceptList で除外もできるので、
既存テーブルを指定して、途中から運用するというのもできます。
また、一時テーブルで0件じゃないといけないものも指定できます。
deprecatedSelectByPKUQMap
littleAdjustmentMap.dfpropにて指定できます。
selectByPK(), selectByUniqueOf() を、
非推奨にするオプションです。
あんまりやらないと思いますが、
SpecifyColumn を必須にしている現場だと、
自動的に全カラムspecify()になってしまう
selectByPK()が困るということで、
このようなオプションが設けられました。
deprecatedSpecifyBatchColumnMap
littleAdjustmentMap.dfpropにて指定できます。
deprecatedSelectByPKUQMapと同様で、
SpecifyColumn を必須にしている現場だと、
specify().everyColumn()されたら意味ないので、
このようなオプションが設けられました。
細かい改善していってます
他にも細かいのありますが、
DBFluteもまだまだこういった細かい改善が
求められています。
昨年はあまりリリースできませんでしたが、
今年はちょくちょく改善をリリースしていきたいと思います。