... senza in realtà la lettura e l'analisi del persistence.xml
Come recuperare l'origine dati utilizzata da un'unità di persistenza di programmazione
posso recuperare il nome dell'unità di persistenza di un EntityManager
utilizzando il properties of it's factory. Posso recuperare le origini dati disponibili usando lo jboss-as-controller-client. Ma non ho trovato alcuna API che mi avrebbe dato l'origine dati di un particolare EntityManager
.
Un String
con un nome sarebbe sufficiente.
Grazie
Sto lavorando con Hibernate 4.0.1.Final sopra JPA 2 su una JBoss 7.1.1.Final.
EDIT: e vorrei evitare di allontanarsi da APP a Hibernate API, se possibile.
EDIT: la soluzione di Augusto lavorato, ho alcuni appunti sui dettagli: Il casting del EM non ha funzionato a causa di un ClassCastException
:(org.jboss.as.jpa.container.TransactionScopedEntityManager cannot be cast to org.hibernate.ejb.EntityManagerImpl
), ma ha funzionato per la fabbrica recuperata. Così ho omesso il passaggio 1.
anche io non sono riuscito a trovare un modo per recuperare il nome dell'origine dati dall'istanza. Così ho dovuto accontentarmi il nome del catalogo: connectionProvider.getConnection().getCatalog();
Grazie, Augusto, sembra promettente. Sto ancora lottando per uscire dall'inferno della dipendenza, cercando di scoprire quali artefatti in letargo jboss in realtà fornisce loro riferimento nel mio pom. Accetterò una volta che vedo la luce – kostja
lavorata, con alcune stranezze però. Vedere la domanda modificata – kostja
Un altro attacco contro l'APP a mio parere ... Questo processo, sebbene corretto, è molto più complicato del necessario. – rtcarlson