Eclipse上のJPA Toolsを使ってエンティティクラスを自動生成する#

Data Sourceの設定が終わっていれば以下の手順でエンティティクラスを自動生成できます。
ですが、テーブルレイアウト変更などで再生成すると、手動で加えた変更が上書きで消されてしまいます。 これを防止するために、Webアプリケーションとは別に自動生成用のプロジェクトを作ってそこで生成することにします。

エンティティクラス生成用プロジェクトの作成#

Mavenプロジェクトの新規作成#

  1. File → New → Project をクリックする。
  2. Maven → Maven Project を選択する。
  1. Nextボタンを押す。

  1. Create a simple project(skip archetype selection)をチェックする。
  2. Nextボタンを押す。

  1. "Group Id"、"Artifact Id"、"Name"、"Description"にそれぞれ好きに記入する。(Artifact Idがプロジェクト名になる)
  2. Finishボタンを押す。

JPAプロジェクトの適用#

  1. 今作成したプロジェクトをProject Explorerで選択する。
  2. Project → Properties → Project Facets を選択する。
  1. Convert to faceted from...をクリックする。

  1. Project Facetの枠の中のJPAをチェックする。
  2. Further configuration available...をクリックする。

  1. Connectionにて自分が作成した接続先を選択する。
  2. Discover annotated classes automatically をチェックする。(生成後のアノテーションエラーを回避するため)
  3. OKボタンを押す。
  4. 戻った画面でApplyボタンを押す。
  5. 同じ画面でOKボタンを押す。

  1. ProjectのPropertyを開く。
  2. Java Compilerを選択する。
  3. Use compiler from execution environment・・・のチェックを外す。
  4. Compiler compliance levelを1.8に変更する。
  5. OKボタンを押す。
  6. もしもBuildを要求されたらYesボタンを押す。

  1. ProjectのPropertyを開く。
  2. JPA → Errors/Warningsを選択する。
  3. Enable project specific settingsをチェックする。
  4. Database → Table を開く。
  5. Catalog cannot be resolved for tableを"Ignore"に変更する。
    ※@Tableアノテーションのcatalog属性の値はクラス生成時のデータベース名が設定されますが、実稼働時は使用されません。 にもかかわらずそのCatalog名が存在しないというエラーがEclipse上に常に表示されてしまうのでそれの防止策です。

JPA-APIライブラリをMavenで取得する#

  1. 作成したプロジェクトのpom.xmlファイルを開く(ダブルクリック)。
  2. DependenciesタブのAddボタンを押す。
  1. pom.xmlタブをクリックする。
  2. dependenciesタブの中に以下を追記し、pom.xmlファイルを保存する(CTRL+S)。
<dependency>
    <groupId>org.hibernate.javax.persistence</groupId>
    <artifactId>hibernate-jpa-2.1-api</artifactId>
    <scope>provided</scope>
    <version>1.0.0.Final</version>
</dependency>

  1. Project ExplorerのMaven Dependenciesにjarファイルが表示されればOK。

※上記はJPA2.1のものです。今後新しいバージョンが必要になったら読み替えて下さい。

JPA Toolsをクリックする#

generate-entities.png
  1. Project Explorerでプロジェクトを選択する。
  2. 右ボタンメニューで JPA Tools → Generate Entities from Tablesをクリックする。

エンティティクラスを自動生成する#

generate-entities-ouyput.png
  1. Packageに好きなパッケージ名を記入する。
  2. Use Console Configurationのチェックを外す。
  3. Hibernate Versionを4.3に換える。
  4. Database Connectionを自分が設定したものに変更する。
  5. Finishボタンを押す。

New → JPA Entities from Tables による自動生成#

Project ExplorerでNew → JPA Entities from TablesによってもEntityクラスを自動生成できます。 jpa-new-entity-select.png
  1. 赤い下線を引いたアイコン(Connect)を押してRDBに接続する。

jpa-new-entity-select2.png
  1. Schemaを指定する
  2. Tablesの一覧に表示されたテーブルの中で生成したいテーブルにチェックする。
  3. Nextボタンを押す。

jpa-new-entity-associations.png
  1. リレーションの図をクリックする。

jpa-new-entity-associations2.png
  1. 表示されたリレーションが正しいことを確認する。
  2. Propertyの値をデフォルト値から変更したい場合は変更する。
  3. Nextボタンを押す。

jpa-new-entity-customize.png
  1. Entity access、Associations fetch、Collection properties typeを設定する。
  2. Source FolderとPackageを設定する。
  3. Nextボタンを押す。

jpa-new-entity-customize2.png Superclassがあれば設定する。
  1. Finishボタンを押す。
  2. これでソースが生成される。

ただしソース中に記述されているアノテーションがJPA Toolsによるものと微妙に異なっているのでそれぞれよく見て利用して下さい。

添付ファイルの追加

ログイン済のユーザのみが添付ファイルをアップロード出来ます。

添付ファイル一覧

Kind Attachment Name Size Version Date Modified Author Change note
png
db-connect.png 26.5 kB 1 21-3-2016 21:09 ytp
png
db-connected.png 19.1 kB 1 21-3-2016 21:16 ytp
png
entity-generation-package.png 62.8 kB 1 21-3-2016 19:00 ytp
png
generate-entities-ouyput.png 50.2 kB 2 21-4-2016 01:35 ytp
png
generate-entities.png 115.2 kB 1 22-3-2016 00:40 ytp
png
jpa-api-maven1.png 38.8 kB 1 21-4-2016 01:21 ytp
png
jpa-api-maven2.png 13.5 kB 1 21-4-2016 01:22 ytp
png
jpa-facet1.png 62.4 kB 1 21-4-2016 01:22 ytp
png
jpa-facet2.png 98.9 kB 1 21-4-2016 01:22 ytp
png
jpa-facet3.png 73.2 kB 1 21-4-2016 01:22 ytp
png
jpa-facet4.png 102.4 kB 1 21-4-2016 01:22 ytp
png
jpa-facet5.png 155.2 kB 1 23-4-2016 00:17 ytp
png
jpa-new-entity-associations.pn... 40.9 kB 2 05-6-2016 00:11 ytp
png
jpa-new-entity-associations2.p... 54.1 kB 1 05-6-2016 00:11 ytp
png
jpa-new-entity-associations3.p... 61.9 kB 1 05-6-2016 00:11 ytp
png
jpa-new-entity-customize.png 61.9 kB 1 05-6-2016 00:12 ytp
png
jpa-new-entity-customize2.png 52.1 kB 1 05-6-2016 00:12 ytp
png
jpa-new-entity-select.png 50.0 kB 2 05-6-2016 00:13 ytp
png
jpa-new-entity-select2.png 50.4 kB 1 05-6-2016 00:11 ytp
png
jpa-new-entity.png 48.2 kB 1 04-6-2016 23:33 ytp
png
maven-new1.png 46.8 kB 1 21-4-2016 01:23 ytp
png
maven-new2.png 41.0 kB 1 21-4-2016 01:23 ytp
png
maven-new3.png 53.9 kB 1 21-4-2016 01:23 ytp
« This page (revision-18) was last changed on 05-6-2016 00:10 by ytp