Question

J'essaie de développer une application Java Plugin en utilisant le framework Java plug-in . Tous les plugins auront accès à une base de données en utilisant uniq JPA (avec EclipseLink).

Mais chaque plug-in aura-t-il propres entités.

Je ne pouvais pas déclarer toutes les entités dans un seul fichier persitence.xml dans le plug-in de base.

La question est: est-il possible de déclarer la classe entité à la volée lors de la déclaration du EntityManagerFactory? J'utilise déjà une carte pour obtenir la chaîne de connexion et l'utilisateur / mot de passe fichier de configuration utilisateur.

Y at-il un moyen de faire la même chose avec les entités?

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

Merci pour votre aide.

Était-ce utile?

La solution

Si votre seule préoccupation est pas faire déclarer les fichiers de classe dans le persistence.xml, vous pouvez utiliser détecter automatiquement fonctionalité.

Pour ajouter ce EclipseLink à persistence.xml

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

Maintenant toutes les annotations mappée avec @Entity sera automatiquement numérisé.

Autres conseils

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top