No Bugs, No Life

読んだ本や、プログラミング、システム開発等のねたを中心に。文章を書く練習なので少し硬派に書くつもりだけど、どうなることやら。

EclipseLink-JPA/Dali の環境設定とEntityBean生成

MementoWeaver開発記(7)
前回まででDerby側のテーブル作成までを行ったので、今回はJPAのエンティティを作成する。
毎度のことではあるが、JPAを使った開発を行うためにEclipseプラグインを追加でインストールする。
導入したプラグインはDali(Dali JPA Tools)。
EclipseのWeb Tools Platforms(WTP)のサブプロジェクトのようなので、Pleiadesとかをインストールしていたら、最初から導入されているらしい。

Dali のインストール

自分の環境は導入されていない様子だったので、Help->Install New Softwareから導入。
f:id:kazyury:20130303205134p:plain
導入したプラグイン

  • Dali Java Persistence Tools - EclipseLink JPA Support
  • Dali Java Persistence Tools - JPA Diagram Editor
  • Dali Java Persistence Tools - JPA Support

あとからJPA with Eclipse Dali - Tutorialを見て必要なのかも、と思ったので、以下も追加導入している*1

  • EclipseLink Target Components

JavaプロジェクトをJPAプロジェクトに変換

Daliのインストール後、Dali Java Persistence Tools User GuideからConverting a Java Project to a JPA Projectに辿り、既存のJavaプロジェクトをJPAプロジェクトに変換する。

Javaパースペクティブからプロジェクトフォルダ(MementoWeaver)を選択して右クリックし、Configure->Convert to JPA Projectを実行すると、プロジェクトファセットの変更画面が出てくる。
f:id:kazyury:20130303210419p:plain
ここでJavaが1.4とかになっていると怒られるので、1.7に上げてNext。
f:id:kazyury:20130303210817p:plain
Platform、Connection、Driver辺りを適当に設定してFinish。
すると、src/META-INF/persistence.xmlが作成される。
f:id:kazyury:20130303211248p:plain

DerbyテーブルからのEntityBean作成

いよいよEntityBeanを作成する。
プロジェクトフォルダ(MementoWeaver)を選択して右クリックし、JPA Tools->Generate Entities From Tablesを実行。
Generate Custom Entities画面が表示される。
f:id:kazyury:20130303211736p:plain
スキーマ:MWを選択し、生成対象のテーブルを選択(今回は全選択)してNext。

Associationの設定画面が表示されるが今回はスキップ(TODO)。
Customize Defaults画面では主キーの自動生成方法の指定や出力先パッケージ名の指定などを行えるが、出力先パッケージのみとりあえず指定してみることにしてその他はスキップ。
f:id:kazyury:20130303212332p:plain

Customize Individual Entities画面では、テーブル/カラム(Rの世界)からクラス/プロパティ(Oの世界)へのマッピングが示される。Rの世界での命名を_で連結している場合にはCamelCaseにしてくれている様子。
f:id:kazyury:20130303213304p:plain
必要に応じて名称や型を修正してFinish。

とりあえず出来たらしい。
f:id:kazyury:20130303213641p:plain

*1:本当に必要かどうかちゃんと検証するべきだったな...。