Middlegen for Hibernate
Middlegenはデータベースのテーブル定義から魔法のようにJavaコードやマッピングファイルを生成してくれます。しかし、Middlegenを利用するには、Antのビルドファイルを作成する必要があり、少し面倒です。そこで、簡単に使えるAntのビルドファイルのテンプレートを作ってみました。このテンプレートを使えば、データベースのテーブルからHibernate用のマッピングファイルとJavaクラスを簡に生成することができます。Middlegenの詳細については、Middlegenのデモをご覧下さい。ここでは、Middlegen2.1を利用してデータベースのテーブル定義からHibernateのマッピングファイルとクラスを生成します。Middlegenの詳細については、下記の書籍もご覧下さい。
HibernateとMiddlegenの連携を徹底解説
購入はこちら
インストール
http://sourceforge.net/projects/hibernateからhibernate2、hibernate-ext、http://sourceforge.net/project/showfiles.php?group_id=36044 からmiddlegen-2.1をダウンロードし、適当なディレクトリに解凍する。
Debianの場合はパッケージvelocityがあるとエラーになるので,パージしておく.
コンフィギュレーション
- ビルドファイルbuild.xmlとプロパティファイルbuild.propertiesをダウンロードして適当なディレクトリにコピーする。
- build.propertiesの下記の部分を先ほどダウンロードしたhibernate2,hibernate-ext,middlegenに合わせて変更する。
middlegen.dir = c:/java/middlegen-2.1
hibernate.dir = c:/java/hibernate-2.1
hibernate-ext.dir = c:/java/hibernate-extensions-2.1.2
- build.propertiesのデータベースの設定を変更する。
# データベースの設定
database.driver = org.postgresql.Driver
database.url = jdbc:postgresql://localhost/test
database.userid = postgres
database.password = postgres
- アプリケーション名と生成するJavaクラスのファイル名を適当に指定
# 生成するHibernateの設定ファイル(*.hbm.xml)と
# Javaクラスのパッケージ名
package = org.ultimania.vo
# アプリケーション名
name = myapp
実行
antを実行します。
> ant compile
> ...
> dir build/classes/org/ultimania/vo
Address.class Address.hbm.xml Student.class Student.hbm.xml
このようにクラスとHibernateのマッピングファイルが生成されます。
サンプルについて
ここで実行したサンプルは、Middlegenとhbm2javaを利用して次のように変換を行っています。
(データベースのテーブル定義)-[Middlegen]->(マッピングファイル)-[hbm2java]->(Javaクラス)
日本語メッセージについて
Middlegen2.1からHibenrateプラグインで日本語が表示できるようになりました。英語と日本語の対応関係については、下記のLocalStrings?.javaをご覧下さい(文字化けする場合は、文字コードをutf-8に設定して下さい)。
参考文献