... sin tener que leer y analizar el persistence.xml
Cómo recuperar la fuente de datos utilizada por una unidad de persistencia mediante programación
que puede recuperar el nombre de la unidad de persistencia de un EntityManager
utilizando el properties of it's factory. Puedo recuperar las fuentes de datos disponibles usando el jboss-as-controller-client. Pero no he encontrado ninguna API que me dé la fuente de datos de un particular EntityManager
.
Un String
con un nombre sería suficiente.
Gracias
estoy trabajando con Hibernate 4.0.1.Final sobre JPA 2 en una JBoss 7.1.1.Final.
EDITAR: y me gustaría evitar pasar de JPA a Hibernate API si es posible.
EDITAR: La solución de Augusto funcionó, tengo algunas notas sobre los detalles: La fundición de la EM no funcionó debido a un ClassCastException
:(org.jboss.as.jpa.container.TransactionScopedEntityManager cannot be cast to org.hibernate.ejb.EntityManagerImpl
), pero funcionó para la fábrica recuperada. Así que omití el paso 1.
Tampoco pude encontrar una manera de recuperar el nombre de la fuente de datos de la instancia. Así que tuve que contentarme con el nombre de catálogo: connectionProvider.getConnection().getCatalog();
Gracias, Augusto, parece prometedor. Todavía estoy luchando para salir del infierno de la dependencia, tratando de descubrir qué artefactos de hibernación realmente proporciona el jboss para referenciarlos en mi pom. Lo aceptaré una vez que vea la luz – kostja
Funcionó, aunque con algunos caprichos. Ver la pregunta editada – kostja
Otro ataque contra JPA en mi opinión ... Este proceso, aunque correcto, es mucho más complicado de lo necesario. – rtcarlson