@DBFlute-0.9.7.0, Java 以前から構想はありましたが、 http://d.hatena.ne.jp/taedium/20091114/p1 で、さらに触発されて、今回踏み切りました。 外だしSQLのパラメータコメントでループが書けます。 つまり、"FORコメント" です。 パラメータコメント - FORコメント あまりDBFluteでは、フレームワーク間での2Way-SQLの 方言を作りたくなかったのですが、 (DBFluteは、基本的にS2Daoの仕様がベース) さすがに、DOMAのリッチな構文はサポートできないので、 (本当に感心させられます、実現するの大変ですよ) シンプルで定型的な要件にフィットさせながらも、ある程度の 自由度を提供する、という独自のバランスを考慮してみました。 ただ、DBFluteでは、実はFORコメントは実際には そんなに利用される頻度は多くないと想定しています。 既に大勢の方に利用した頂いていて、あまり大きな問題に なっていないことがよい証拠で(代替策もあったけど)、 DBFluteには、ConditionBeanがあるから。 とはいえ、FORコメントは大事な機能です。 コラム - FORコメントの存在価値
ちょうど、ConditionBean、外だしSQLの役割が着目 されたところで...DBFluteのポリシーを再確認。 DBFluteは、バランス重視のDBアクセスI/Fをポリシー としていて、どちらか一辺倒ということはありません。 DBFluteの紹介 - 酸素と水、どっちが大事? それどころか、サイトに載せない非公式な職人魂としては、 "外だしSQLだけのプロジェクトでも最高のもの" という思いで作っています。 (少なくとも作り手の思いとしては) もちろん、ConditionBeanとのバランスを考慮しての ちょっとした独特のポリシーはありますが、 外だしSQLについて - 自由度の高さを重視 ConditionBeanは、外だしSQLがあるからこそ、 その堅さを有意義に利用できると言えるでしょう。 どっちが大事かなんて議論は無意味です。 FORコメントの実現まで漕ぎ着けたのも、 こういう思いがあったからかもですね。 (実は、内部的な実現方法をかなり悩んで、 挫折しそうになりました) 極めつけには、実はこういう事情があります。 jflute自身は、プロジェクトで外だしSQLの部分 ばかり担当することが多いのです。 anybody "jfluteさん、これお願いします" jflute "えっ、またぁ、こういうの持ってくるかい!?" と、せっせとすんごい長いSQLとセンシティブな要件に 対応するパラメータコメントと格闘するわけです。 (かたわら、別の人にConditionBeanのフォローをして) "超" 個人的にことを言えば、DBFluteの外だしSQLが 幸せでなければ、自分が幸せになれないのです! そりゃ、(外だしSQLも)気合い入れて作るさぁ、ってとこで。 # # ちなみに、DBFlute使って全部外だしSQLで実装した # っていうプロジェクトの実績は聞いたことあります。 # (プロジェクトの規約でどうしてもってことで) # とにかくSql2Entityが大活躍したそうで。 #