Wie Entities on the fly zu erklären?
Frage
Ich versuche, eine Java-Plugin-Anwendung zu entwickeln mit dem Java Plugin-Framework . Alle Plugins werden Zugang zu einer einzigartigen Di Datenbank JPA (mit Eclipselink).
Aber jedes Plugin wird es eigene Entitäten haben.
So kann ich nicht alle Entitäten in einer einzigen Datei persitence.xml im Kern Plugin erklären.
Die Frage ist: ist es möglich, Entity-Klasse on the fly zu erklären, wenn die EntityManagerFactory erklären? Ich bin schon eine Karte mit zu Verbindungszeichenfolge und Benutzer / Passwort von Benutzerkonfigurationsdatei erhalten.
Gibt es eine Möglichkeit, das gleiche mit Entities zu tun?
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);
Danke für Ihre Hilfe.
Lösung
If your only concern is not do declare the class files in the persistence.xml then you can use auto detect funcionality.
For eclipselink add this to persistence.xml
<exclude-unlisted-classes>false</exclude-unlisted-classes>
Now all annotation mapped with @Entity
will be scanned automatically.
Andere Tipps
This might help: