0

Javaプラグインフレームワークを使用してJavaプラグインアプリケーションを開発しようとしています。すべてのプラグインは、JPA(Eclipselinkを使用)を使用してuniqデータベースにアクセスできます。

ただし、各プラグインには独自のエンティティがあります。

そのため、コアプラグインの1つの一意のファイルpersitence.xmlですべてのエンティティを宣言できませんでした。

問題は、EntityManagerFactoryを宣言するときに、その場でEntityクラスを宣言することは可能ですか?私はすでにマップを使用して、ユーザー構成ファイルから接続文字列とユーザー/パスワードを取得しています。

エンティティで同じことを行う方法はありますか?

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);

ご協力いただきありがとうございます。

4

2 に答える 2

1

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

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

于 2011-01-18T08:01:38.590 に答える
0

唯一の懸念事項がpersistence.xmlでクラスファイルを宣言しないことである場合は、自動検出機能を使用できます。

eclipselinkの場合、これをpersistence.xmlに追加します

<exclude-unlisted-classes>false</exclude-unlisted-classes>

これで、マッピングされたすべての注釈@Entityが自動的にスキャンされます。

于 2011-01-18T10:03:57.657 に答える