persistence - 如何使用 JPA Glassfish Java EE 连接到多个数据库?
问题描述
我有一个使用 JSF、EJB、JPA、Glassfish 的应用程序。有多个(可能有大约一千个或更多)客户端使用我的应用程序,但是每个客户端都有一个单独的数据库。所有数据库都具有相同的架构。我想确定在用户登录系统时使用哪个数据库连接。
例如客户端A输入客户端代码,用户名和密码并登录,我确定客户端A属于数据库A,获取数据库A的连接并继续我的快乐方式。
我使用 JPA 作为我的持久性提供程序。是否可以在运行时在 persistence.xml 中设置数据源?是否有 .java 版本的 persistence.xml 可用?有没有更好/首选的方法来做到这一点?所有连接的 PersistenceUnit 名称都相同。
谢谢
解决方案
如果您事先知道所有用户,那么您可以在 persistence.xml 中为每个用户创建单独的持久性单元,并使用工厂为用户选择持久性单元名称。添加用户,需要修改persistence.xml,重新部署Application。
推荐阅读
- ionic-framework - ionic 3 charts.js 处理画布
- android - Android RecyclerView如何通过单击项目打开新活动
- vim - 如何在 Vim 中搜索特殊字符 ^?
- python - 让python回答“整个期间“盈亏”的总净额”
- swift - Firebase Cloud Firestore - 初始化集合
- java - Java对象工厂可以用作构造函数吗?
- javascript - 如何在 CSS 或 jQuery 中持久更改按钮的颜色
- java - 教授说我们无法初始化数组。这可能吗?
- r - 如何在 ggplot2 中绘制成对比较(仅样本统计)
- javascript - 下拉菜单不再更改 Shopify 产品图片?发生了什么?