dbfluteとS2JDBC比較しようとおもって・・・

とりあえず、DoltengS2JDBCのコンソールプロジェクト作ってみた。
DDL→DB→Entity生成→DDL生成→migrateタスク
みたいな流れでやったら、Migrateにて
SCHEMA_INFOテーブルのDropがエラー(最初はないので)
と、ユニーク制約のドロップのエラーでしばらく悩まされた(Entityからだと生成されるらしい)


また、いざタイプセーフにって思ったっけ、
サービスクラスにJDBCManagerがDIされない・・・


diconとか調べたりしたんだけどわからず、グーグル先生に教えていただいたら
EJB関連?jarが入っていないというちょっとわかりにくい原因だった。
ただのDIされない事による、NullPointerExceptionだし。
(この手のエラーはトラウマになるな(^^;)
参考:DoltengでS2JDBC利用プロジェクトを作る際の追加作業 - idesaku blog



んで、さらには、ある意味目玉の
Condition系のクラスは現在のDoltengの生成するプロジェクトでは使えないという事実。
ちまに2.4.30からの機能らしい。(Doltengが作成するのは現状.29)


先のjarについてもDoltengが次から対応するとの事なので、
それまで様子見にするか、せっかくここまでやったので、.30系のjarをかき集めてきて
進めるか・・・ですね。ちょいと文章にまとめながら進めているので
なんか例外回避やらが多いとちょっと・・・
(特に次バージョンで対応とかわかってると日和見したくなる)


それか先にdbfluteのことをまとめるか・・・なんだけど、
せっかくなので、S2JDBCを進めつつ、dbfluteなら出来るとか、対応する機能はこれだ。
みたいな感じで進めていこうかなぁと思ってるし
dbfluteを先にすると出来ることが多すぎてまとまらない気がする)

ファーストインプレッション

今のところの感じ(生成からスキーマ管理あたり)からすると、
S2JDBC(-Gen)は、小から中の規模のプロジェクト
dbfluteは大規模系のプロジェクト
といった感想
S2JDBCは大規模向けに作られているとの事なので、この印象がどう変わっていくのかも楽しみ。)



また、本当に第一印象だけの話だが、
S2JDBC(-Gen)は、DBチームがないようなケースで
dbfluteはDBチームがあってその管理のことも考えているといった感じ。
S2JDBCのEntityからDDLスピーディでいいとは思うんだけど、管理できるの?
というか大丈夫?という不安が大きい。(混乱する現場が目に浮かんでしまう)

10/25追記

S2JDBCとS2JDBC-Genを一緒にするかは悩みどころですが、今のところ第一候補なのは
確かですので・・・


管理方法についてはプロジェクト毎により異なるのは当然ですが、
まぁ想定される用途などからも検討できたらと。



ちなみにそれぞれ、Excel(CSV)ダンプに関して、どれくらい出せるのだろ?
POIってメモリ溜め込み系のストリーム利用してなかったっけ?
というのも試してみたいかも。


また、個人的にはちょこちょこ生成する?のかはわからないんだけど
生成物がジェネレーションギャップパターン適応されてないのも不安。
(Entityを生成するのは最初だけで、
その後は、Entityをメンテナンスしていくという方針で、
だから不要なだけ?という気もするけど)