…实际上没有阅读和解析 persistence.xml
persistence.xml
我可以EntityManager使用工厂的属性来检索其持久性单元的名称。我可以使用jboss- as-controller-client检索可用的数据源。但我发现没有API可以提供特定的数据源EntityManager。
EntityManager
String带有名称的A 就足够了。
String
谢谢
我正在JBoss 7.1.1.Final上通过JPA 2使用Hibernate 4.0.1.Final。
编辑:并且我想尽可能避免从JPA迁移到Hibernate API。
编辑:Augusto的解决方案有效,我在细节上有一些注释:由于ClassCastException:( org.jboss.as.jpa.container.TransactionScopedEntityManager cannot be cast to org.hibernate.ejb.EntityManagerImpl),EM的转换不起作用,但它对检索到的工厂有效。所以我省略了步骤1。
ClassCastException
org.jboss.as.jpa.container.TransactionScopedEntityManager cannot be cast to org.hibernate.ejb.EntityManagerImpl
我也找不到从实例检索数据源名称的方法。因此,我必须对目录名称感到满意:connectionProvider.getConnection().getCatalog();
connectionProvider.getConnection().getCatalog();
你需要:
EntityManagerImpl
getFactory()
EntityManagerFactory
HibernateEntityManagerFactory
getSessionFactory()
SessionFactoryImpl
getConnectionProvider()
DatasourceConnectionProvider
getDataSource()
不幸的是,您必须使用Hibernate API,因为无法使用JPA API检索数据源。