私は eclipse + eclipselink + maven2 + mysql + jpa 2.0 + Java SE を使用しています。
Eclipse を使用して、Entity クラスから MySQL テーブルを作成できます。persistence.xml は src/main/resources/META-INF/... にあります。
また、実稼働およびテスト用にEclipseで指定されたデータベース接続もあります。いずれかがプロジェクトで選択され、機能するようです。
プロジェクトで使用されるデータ ソースに応じて、選択したデータベースにテーブルが作成されます。データベース接続の詳細が無視されるため、persistence.xml の内容は無視されます (何が期待できるかわかりません)。また、persistence.xml を右クリックして [JPA Tools] > [Synchronize Class List] を選択すると、ファイルはエンティティ クラスで更新されます。
persistence.xml も必要です。そうしないと、どちらのデータベースにもテーブルが作成されません。(ファイル名を変更してテスト済み)
以前は、何かを入れてロードすることで、テスト用にいくつかの DAO メソッドを実行することもできました。また、プロジェクト内の JPA エンティティを一覧表示する「JPA」という名前の Eclipse パッケージ エクスプローラーのメニュー項目がありましたが、これはもう存在しません。
私はプロジェクトに変更を加えませんでした (夜だけコンピューターを閉じました)。次にプロジェクトを開いたとき、DAO メソッドを実行できなくなり、次のエラーが表示されました。
No Persistence provider for EntityManager named xxx
同じエラーは、DAO メソッドを持つメイン クラス、Eclipse によって実行された JUnit テスト、および Maven によって実行された同じテストにも発生します。
注: エンティティからテーブルを作成することはできます。
何かアドバイス?