首页 > 解决方案 > 如何使用 JPA Glassfish Java EE 连接到多个数据库?

问题描述

我有一个使用 JSF、EJB、JPA、Glassfish 的应用程序。有多个(可能有大约一千个或更多)客户端使用我的应用程序,但是每个客户端都有一个单独的数据库。所有数据库都具有相同的架构。我想确定在用户登录系统时使用哪个数据库连接。

例如客户端A输入客户端代码,用户名和密码并登录,我确定客户端A属于数据库A,获取数据库A的连接并继续我的快乐方式。

我使用 JPA 作为我的持久性提供程序。是否可以在运行时在 persistence.xml 中设置数据源?是否有 .java 版本的 persistence.xml 可用?有没有更好/首选的方法来做到这一点?所有连接的 PersistenceUnit 名称都相同。

谢谢

标签: persistencejava-ee-6glassfish-3jpa-2.1persistence.xml

解决方案


如果您事先知道所有用户,那么您可以在 persistence.xml 中为每个用户创建单独的持久性单元,并使用工厂为用户选择持久性单元名称。添加用户,需要修改persistence.xml,重新部署Application。


推荐阅读