S2JDBC-Gen 0.9.4 ハイライト

S2JDBC-Genの0.9.4がリリースされています。ChangeLogやダウンロードのURLについてはこちらを参照してください。0.9.3から移行する場合は、移行の注意点を確認お願いします。

0.9.4の新しい機能について軽く紹介してみます。

Gen-SqlFileTestタスク

S2JDBCSQLファイルによる操作をサポートしていますが、Gen-SqlFileTestタスクを使うとそこで使われるSQLファイルに対するテストコードを生成できます。生成されたテストを実行すれば、SQLファイル内で存在していないテーブルやカラムを参照している場合にすぐに検出できます。

http://s2container.seasar.org/2.4/ja/s2jdbc_gen/tasks/gen_sqlfiletest.html

Gen-ServiceTestタスク

ついにサービスクラスに対するテストコードも生成できるようになりました。サービスクラスでよく問題になるのは、JdbcManagerがDIされないというものですが、生成したテストコードが動けばDIがちゃんと行われているとみなせます。といっても、生成するテストメソッドは1つだけなのでテストコードの雛形を簡単に作れるくらいに考えてもらってもいいです。

http://s2container.seasar.org/2.4/ja/s2jdbc_gen/tasks/gen_servicetest.html

JavaDocコメントをデータベースに反映

JavaDocコメントから、COMMENT ONなどのステートメントを生成できるようになりました。これでエンティティ上のコメントを対応するテーブルやカラムに反映できます。
http://s2container.seasar.org/2.4/ja/s2jdbc_gen/tasks/gen_ddl.html#エンティティのJavaDocコメントをテーブル作成用のDDLファイルに反映させる


エンティティを生成するときに、テーブルやカラムのコメントをJavaDocに反映させることもできます。
http://s2container.seasar.org/2.4/ja/s2jdbc_gen/tasks/gen_entity.html#データベース上のテーブルやカラムへのコメントをエンティティのJavaDocコメントに反映させる

外部キーのDDL生成

エンティティクラス上で関連があっても外部キー制約を生成しないことが可能になりました。これで、外部キー制約は作りたくないけどよく結合するという場合に対応しやすくなりました。外部キー制約をまったく利用したくないという場合にも対応できます。
また、外部キー制約にDELEATE ON CASCADEなどの参照動作を指摘できるようになっています。

http://s2container.seasar.org/2.4/ja/s2jdbc_gen/entity_definition.html#外部キー定義

DBリファクタリング用コメント

DBリファクタリングして(エンティティクラスを修正して)Gen-Ddlする場合に、変更理由をコメントとして記録できるようになりました。
通常は、ddl-info.txtにコメントが保存されます。これで、何のためにDDLを変更したのかの情報を共有しやすくなりますし、後からそのバージョンに戻るときの目印にできます。

http://s2container.seasar.org/2.4/ja/s2jdbc_gen/tasks/gen_ddl.html#DDLを生成する理由を記録する

S2JUnit4用のテストコード

S2JUnit4用のテストコードを生成できるようになりました。
テストを生成するタスクで

useS2junit4="true"

としてください。

サンプルのビルドファイルの提供

配布ファイルに実践的なビルドファイルのサンプルを含めるようにしました。Doltengが出力するようなディレクトリ構成にしたがっている場合は、rootpackagenameとentityfilepatternの2つのプロパティだけを変更すれば大丈夫です。

http://s2container.seasar.org/2.4/ja/s2jdbc_gen/task.html#タスクの使用例

ビルドファイルはDoltengで生成できますが、S2JDBC-Gen 0.9.4に対応したDoltengのリリースはまだなので、自前でビルドファイルを用意したい場合に参考にしてください。もちろん、Doltengを使わない場合であっても、このビルドファイルをベースにできます。

追記 12/15
タスクの利用例のビルドファイルではgen-ddlターゲット内にjavacタスクが含まれていますが、これは不要でした。削除してもらって大丈夫です。それと、現在はS2JDBC-Gen 0.9.4に対応したDolteng 0.34.0がリリースされています。こっちを使ってくれてもOK。
http://dolteng.sandbox.seasar.org/#Setup