Pregunta

Trato de desarrollar una aplicación Java Plugin usando el plugin de Java marco . Todos los plugins tendrán acceso a una base de datos uniq usando JPA (con EclipseLink).

Pero cada plugin tendrá allí propias entidades.

Así que no podía declarar todas las entidades en una persitence.xml archivo único en el complemento del núcleo.

La pregunta es: ¿es posible declarar la clase de entidad sobre la marcha cuando se declara la EntityManagerFactory? Ya estoy usando un mapa para llegar cadena de conexión y de usuario / contraseña del archivo de configuración de usuario.

¿Hay una manera de hacer lo mismo con las Entidades?

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

Gracias por su ayuda.

¿Fue útil?

Solución

Si su única preocupación no se declare no los archivos de clase en el persistence.xml continuación, puede utilizar la detección automática funcionalidad.

Para EclipseLink añadir esto a persistence.xml

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

Ahora todas las anotaciones mapeado con @Entity se escaneará automáticamente.

Otros consejos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top