【发布时间】:2010-12-13 03:30:13
【问题描述】:
我有一个完美运行的应用程序客户端部署到带有一些 EJB、实体等的 GlassFish v2 服务器上。我正在使用 eclipselink。
目前我的persistence.xml中有:
<persistence-unit name="mysource">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/mysource</jta-data-source>
<class>entities.one</class>
<class>entities.two</class>
...
<properties>
<property name="eclipselink.target-server" value="SunAS9"/>
<property name="eclipselink.logging.level" value="FINE"/>
</properties>
</persistence-unit>
当我将EntityManager 注入 EJB 时,这可以正常工作:
@PersistenceContext(unitName="mysource")
private EntityManager em;
现在我需要动态切换持久性单元/数据库。
我想我可以通过编程方式获得EntityManager:
em = Persistence.createEntityManagerFactory("mysource").createEntityManager();
但我收到以下错误:
Unable to acquire a connection from driver [null], user [null] and URL [null]
即使在 Map 中将 javax.persistence.jtaDataSource“覆盖”到“jdbc/mysource”并调用 createEntityManagerFactory("mysource", map) 也没有什么不同。
我错过了什么?
【问题讨论】:
-
这应该可以工作,并且您的 persistence.xml 看起来是正确的。检查您的类路径中是否没有多个 persistence.xml。
标签: jpa connection persistence glassfish