【发布时间】:2018-05-27 04:19:55
【问题描述】:
我需要在同一个Web 应用程序中使用不同的数据库,所以我不能使用persistent.xml 来定义目标数据库。数据库随连接的客户端而变化。 我发现了这个:
public EntityManager getEntityManager() {
if (em == null}
try{
em = (EntityManager)(new InitialContext())
.lookup("java:comp/ejb/EntityManager");
} catch (Exception e){};
}
return em;
}
在这个网址:http://wiki.eclipse.org/EclipseLink/Examples/JPA/EMAPI
我现在的问题是:如何在 GlassFish 的 JNDI 中记录 EntityManager 或 Persistence Unit?
【问题讨论】:
-
你从哪里得到这个想法:我需要在同一个Web应用程序中使用不同的数据库,所以我不能使用persistent.xml?只需声明多个具有不同名称的持久性单元。例如,请参阅this。假设 persistent.xml 真的是 persistence.xml?
-
是的,但是每次我有一个新客户端时,我都必须修改 persistence.xml 并且我必须重新部署我的应用程序?如果是,我不确定这是最好的解决方案:-(,如果不是,这是一个很好的解决方案:-)
-
好吧,所以我误解了它,所以一个网络应用程序实例同时使用两个数据库。但是您的问题是您将应用程序部署到具有不同配置的不同数据库的不同服务器上?
-
你好,我测试了你的解决方案,除了事务,它工作正常,它们没有被正确管理,实际上它们根本没有被管理,我要放弃这个解决方案!感谢您的帮助:-)
标签: jpa jakarta-ee glassfish