JPA 2.0 を使う例
メモ書きのため、試行錯誤中の話題も書き残します。
データベースアプリケーションを、ウィザードを使って作成する手順・最初に、H2データベースのドライバを登録する。
プラグインを用いても良い。
このプラグインは、 TCP接続用のため、組み込み目的なら、導入する意味はない。
手動で行う場合、「サービス」タブをクリックして、データベースの項目で、ドライバを選択し、右クリックから、新規ドライバを選ぶ。H2ドライバのjarファイルを指定する。
・データベースを作成する。
予め、データベースを作成しておく。h2.batを実行し、ブラウザから設定しておくと良い。
データベースを選んで、右クリック。「新規接続」で、設定を行う。
URLは、以下のように入力する。c:\work\fooは、workフォルダに、fooデータベースを用意しているという意味。
jdbc:h2:c:\work\foo
TCP接続などの場合は、このURLを変更する。
スキーマーは、PUBLIC
・ウィザードを使って、作成する。
修正
このままでは動作しないので、修正する。
作成したプロジェクトの、ソースパッケージのMETA_INFにあるpersistence.xmlを削除。
プロジェクトで、新規から、「持続性ユニット」を選ぶ。
持続性ユニットの名前を決め、ライブラリには、EclipseLink(JPA 2.0)を選び作成する。
persistence.xml を開き、クラスを追加で、追加可能なクラスを登録し直す。
アプリケーションの[xxx]View.propertiesを開き、entityManager.persistenceUnitの名前を、同じ名前に修正する。
アプリケーションを再構築すると、実行できるようになる。
とりあえず、これで、動作する。
テーブルが無い場合にテーブルを自動的に作成する必要がないなら、「表作成の方針」を「なし」にしておくと、エラーの出力がなくなる。
自動的にテーブルを作成するには、他にも、修正が必要になる。
エンティティクラスを開き、@Tableのcatalog と schemaを削除すると、動くが、これが正しいやり方なのかは疑問。
今後のバージョンアップで、この修正がいらなくなる可能性もある。