質問
を使用してJavaプラグインアプリケーションを開発しようとします Javaプラグインフレームワーク. 。すべてのプラグインには、JPA(Eclipselinkを使用)を使用してUNIQデータベースへのACCEがあります。
ただし、各プラグインには独自のエンティティがあります。
そのため、コアプラグインで1つの一意のファイルPersitence.xmlですべてのエンティティを宣言することはできませんでした。
問題は、EntityManagerFactoryを宣言するときに、エンティティクラスをその場で宣言することは可能ですか?すでにマップを使用して、ユーザー構成ファイルから接続文字列とユーザー/パスワードを取得しています。
エンティティで同じことをする方法はありますか?
Map<String, String> p = new HashMap<String, String>();
p.put("javax.persistence.jdbc.url", dns);
p.put("javax.persistence.jdbc.driver", "com.mysql.jdbc.Driver");
p.put("javax.persistence.jdbc.user", config.getProperty("com.cjrf.xbmo.db.username", ""));
p.put("javax.persistence.jdbc.password", config.getProperty("com.cjrf.xbmo.db.password", ""));
entityManagerFactory = Persistence.createEntityManagerFactory("mediamanager", p);
ご協力いただきありがとうございます。
解決
あなたの唯一の懸念がpersistence.xmlでクラスファイルを宣言しない場合、自動検出機能を使用できます。
Eclipselinkの場合、これをpersistence.xmlに追加します
<exclude-unlisted-classes>false</exclude-unlisted-classes>
これで、すべての注釈がマッピングされました @Entity
自動的にスキャンされます。
他のヒント
これは役立つかもしれません:
所属していません StackOverflow