DBFlute-1.0.5A Released

DBFlute-1.0.5A was released.
「ごえー」です「ごえー」

DBFlute Top
Change Log
Migration Point

オープンソースプロダクト「DBFlute」
のリリース通知です。
(プログラマー向けの内容です)

今回は、移行ポイント大事です。
実際にやることはあまりないかもしれませんが、
必ず目を通して頂きたい内容です。
ずっと長い間、悩んでいたことでした。
互換性のことも考えたり、そもそも実現方法は!?
そもそも最適なやり方は?
なかなかはっきりとした答えのでないままでした。

しかしながら、DBFluteのオフィシャルサイトの
アクセス数はここ一、二年でぐんぐん伸びています。
さらなる展望を見据えたときに、
やはり勇気出して未来のための効率化を計らなければと。

それで、今回の移行ポイントとなりました。
こないだの中目黒でひらかれた
「DBFluteユーザーの集い」※ひたすら技術話お食事会
にて、
みなさんの意見も伺いました。
すばらしいフィードバックを頂き、
考えをまとめることができました。
 -> 渋谷Java to DBFluteユーザーの集い

実は終わって家に帰った後に copy insert に気付き、
そのときの話から少し変わったところもありますが、
(検索されたEntityへのセットで挙動を変えるように)
大枠はユーザーの方の声を聞いて、
互換性と今後のメリットとのバランスを整えて、
今回の形にさせて頂きました。
全てのユーザーの方の声を聞けないのがジレンマですが、
できるだけ皆でイメージを膨らませて考えました。

最後まで悩んだのが batchUpdate() の仕様。
newしたEntityでの Fragmented は許したくない。
不意のnull更新だけはうれしくない。
検索されたEntityでは、最小公倍数でも許容されるかも。
互換性を完全に保つならその方がいい。
一方で、とてもわかりにくい仕様になってしまうかも。
何度も決意しても、またすぐに迷いが戻って来ました。

状況によっては、そこだけは微調整は今後もあるかもですが、
基本的なポリシーは、ModifiedOnlyに寄せるということで。
やはり、update文で全てのカラムを列挙するのは、
パフォーマンスを大事にするDBFluteとしては良くない。

そんなかんだで、日曜の丸一日、月曜の朝7時くらいまで、
ぶっ通しで仕様考えたり悩んだり実装していたりしました。
Githubへの移行前リリースということで、期限もあるので、
ちょっと無理して缶詰しました。
「更新とは?」という基本的な概念にまで立ち返ってみたり。
フレームワークのインターフェースを考えるのは難しい。
さて、ソースコードGithubに移ります。
Seasar全体での移行で、DBFluteも同じく引っ越します。

Exampleも変わりますので、
ここで一気に改装オープンという感じですね。
ちょっと最初は手間取るかもしれません(m_m。

そんな引っ越し前の大リリースでした。

#
# あっ、SchemaHTML見てください。
#  -> SchemaHTMLのサンプル
#
# tabを押して、テーブル名検索してみてください。
# その後、tabを押せばまた検索エリアに戻って検索できます。
# こちら、JavaScriptプログラマーの方に作って頂きました。
# 本当にありがとうございます! (Thanks, makotot)
#