質問

を使用して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 自動的にスキャンされます。

他のヒント

これは役立つかもしれません:

http://www.dynamicjava.org/projects/dynamic-jpa

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top