ITエンジニアぽむのブログ

IT系で気になったことを書き留めておく備忘録です。仕事でよく使っているJavaと自宅で使っているLinuxについて書いていこうと思っています。同じお悩みをお持ちの方のお役に立てたら嬉しいです。

STSにHibernateツールをインストールし、Entityを自動生成する!(後編)

まえがき

O/RマッパでEntityを作成する場合、手書きで作成するのは、すごく大変です。

Entityファイルに大量にあるカラムの設定をしたり、複数プライマリーキーの設定をしたりなど、手作業でするには、ミスもし易いし、こんなところで時間を使いたくないと思ってしまっても仕方がないです。

今回は、Entityを自動生成する(リバースエンジニアリング)手順について説明したいと思います。

HibernateツールをSTSにインストールする手順は、前編を参考にして下さいね。

pom2019.hatenablog.com

コンソール構成の追加

  • STSを立ち上げ、Hibernateツールパースペクティブを開きます。その後、「新規>Hibernateコンソール構成」をクリックします。下記キャプチャで赤枠内クリックでも追加できます。

f:id:pom2019:20190714132629p:plain

  • 赤枠内を入力もしくはチェックします。
  1. 名前:コンソール構成の名前を入力します。(なんでも構いません。)
  2. 型:注釈(jdk1.5+)をクリックし、Hibernateのバージョンを4.3とします。
  3. プロジェクト:参照ボタンからEntityの自動生成を行うプロジェクトを選択します。
  4. データベース接続:「[Hibernate configured connection]」を選択します。
  5. 構成ファイル:セットアップボタンからhibernate.cfg.xmlファイルを選択します。

f:id:pom2019:20190714132704p:plain

  •  適用後、OKボタンをクリックします。

f:id:pom2019:20190714133326p:plain

  • Hibernate4.3のツリーを辿っていくとDBに接続できたことが分かります。

f:id:pom2019:20190714133351p:plain

リバース・エンジニアリング・ファイルの作成

  • Springパースペクティブを開き、「新規>その他」をクリックします。
  • Hibernate>Hibernateリバース・エンジニアリング・ファイル」を選択し、次へをクリックします。

f:id:pom2019:20190714134131p:plain

  • resourcesフォルダを指定し、hibernate.reveng.xmlとデフォルト表示されるので、次へをクリックします。

f:id:pom2019:20190714134254p:plain

  • コンソール構成に先程のhibernate4.3を選択し、リフレッシュボタンをクリックします。その後、データベース・スキーマから自動生成したいテーブルを選択し、インクルードボタンをクリックします。そうすると、テーブル・フィルターにテーブルが追加されるので、完了をクリックします。f:id:pom2019:20190714134538p:plain
  • リバース・エンジニアリング・ファイルが作成されます。

Entityの自動生成

f:id:pom2019:20190714135211p:plain

  • 赤枠内の新規構成をクリックします。

f:id:pom2019:20190714135619p:plain

  • 赤枠内を入力もしくはチェックします。
  1. ハンドリング名前:構成の名前を入力します。(なんでも構いません。)
  2. コンソール構成:コンソール構成で作成した構成を選択します。(ここではhibernate4.3)
  3. 出力ディレクトリ:参照ボタンからjavaファイルのルートパスを選択します。
  4. JDBC接続からリバース・エンジニアリング:チェックします。
  5. パッケージ:Entityを作成するパッケージを入力します。
  6. reveng.xml:セットアップボタンからhibernate.reveng.xmlファイルを選択します。

f:id:pom2019:20190714135804p:plain

  • エクスポータータブで、赤枠内のチェックをチェックします。その後、適用ボタンをクリックし、実行ボタンをクリックします。

f:id:pom2019:20190714140541p:plain

  •  Entityが自動生成されます。

f:id:pom2019:20190714140802p:plain

あとがき

無事、Entityを自動生成することができました。

テーブルの内容はGUIを使って変更し、Entityへの反映は自動生成で行えば、タイプミスも防げるし、大量に変更を行う場合などにかなり有効になってくると思います。ただ、エラーメッセージの設定を行いたい場合は、Entityファイルを直接変更しないといけないため、自動生成するとすべて消えてしまいます。。

用途によって、自動生成と手動作成を使い分けるのがいいと思います。

最後までお読み頂きありがとうございました。