Eclipse で JPA Tool を使う

<< 戻る   トップ >>

Eclipse を起動し、JPA Tool を使う。[File]⇨[New]⇨[JPA]で選択するのだが、以前は "Eclipse Link" の "Dynamic Entities from Tables" だったように記憶したいるのだが、JPA 直下に "JPA Entities from Tables" がある。どうしたことか。

ものは試しなので、JPA直下の "JPA Entities from Tables" から試してみる。次の画面では、"Select a JPA Project" と空のリストが表示されて、先に進めない。

なにか根本的に間違っているような気がしたので、検索してみると「初心者でもできる javaEEの開発(3) - 中年プログラマーの息抜き」が参考となった。Project Facets に JPA を加える必要があるのだ。プロジェクトのプロパティから "Project Facets" を表示し、JPA Project をチェックする。

JPA Entities from Tables
そもそも間違えていた "JPA Entities from Tables"。
Project Facets で JPA を選択
すると "Further configuration required." というメッセージが出る。このメッセージがハイパーリンクになっていて黒地に青字で大変見にくいのだが、このリンクからデータベースとの接続設定へと向う。
データベースとの接続設定
この時点で、いかなるデータベースコネクションもないので、"Add conncetion..." リンクを選択する。
MySQL との接続を選択
Connection profile から MySQL を選択する。適当な Name も定め、[Next]に進む。
データベース接続ドライバを選ぶ データベース接続ドライバを選ばなくてはならないのだが、この時点で未設定なので Drivers: 入力欄わきの "New Driver Definition" ボタンへ進む。

さて、ここで MariaDB/MySQL コネクタをしなくてはならない。dnf を使ってインストール済みのコネクタを調べてみると、mysql-connector-java.noarch はインストール済みである。バージョンが 5.1.38-5.fc27 で fc28 でないところが若干気になるが、これを使うように指定していく。ここからは、「Wiki: JPAでDB(MySQL)に接続する設定」を参考にした。

New Driver Definition
Driver Name はもとのままでもたぶん大丈夫だろう。続いて、"Name/Type" の隣の "JAR List" タブを選択して mysql-connector を指定するが、どうやらここに一癖あるらしい。
New Driver Definition - JAR List
"JAR List" を開くと、あらかじめ "mysql-connector-java-5.1.0-bin.jar" なる JAR がある。これを消去 "Remove JAR/Zip" する。
New Driver Definition - Add JAR/Zip
/usr/share/java/mysql-connctor-java.jar を "Add JAR/Zip..." で追加する。
Connection Details
データベース名、ユーザ名、パスワードなどを適宜入力する。"Test Connection" は便利。"Next" に進んで Summary を確認したら完了。

SQL サーバと接続できるようになったので、これで JPA が使えるのかな、と思ったのだが、まだ "JPA Facet" の設定ダイアログに "At least one user library must be selected." のエラーが残っている。user library はてっきり SQL 接続だと思いこんでいたのだが、問題は JPA implementation の方だったのだ。SQL サーバ接続ができたのはそれはそれでよかったのだが。

気を撮り直して、JPA implementation にある "Download library..." ボタンを押してみる。

JPA: Dowload Library
Eclipse Link のダウンロードを奨められるので、とりあえず最新のバージョンを選んで次に進む。次のダイアログでライセンスへの同意を求められる。
JPA Facet これで OK?
ライセンスに同意すると、例の "At least one user library must be selected." エラーは解消する。よく考えてみるとプラットフォームは Generic 2.1 ではなく EclipseLink 2.5.x になるのではなかろうかと思い、変更した。

これで OK ボタンを押すと、ようやくプロジェクトへの JPA Facet の登録が完了した。


作成: 2018-08-30 17:54:34.0更新: 2018-08-30 17:54:34.0
http://museo-anonimo.jp/nanban/?id=1346,http://museo-anonimo.jp/nanban/tr/1346