【问题标题】:How do I connect to multiple databases using JPA Glassfish Java EE?如何使用 JPA Glassfish Java EE 连接到多个数据库?
【发布时间】:2020-07-30 04:06:38
【问题描述】:

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

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

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

谢谢

【问题讨论】:

  • 这里没有与 JSF 相关的内容
  • 感谢 jsf 标签被移除。
  • 正确,我做到了。

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


【解决方案1】:

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

【讨论】:

  • 我事先不知道所有用户。你能提供我的示例链接吗?
  • 是否有其他方法可用,而不是为每个用户创建单独的持久性单元?
  • 您的每个用户都有单独的数据库,因此没有必要拥有一个持久性单元。简单地考虑一下多个用户同时使用您的系统的情况。
  • 我们不能使用多租户之类的东西吗? toptal.com/hibernate/build-multitenant-java-hibernate
猜你喜欢
  • 1970-01-01
  • 2017-05-14
  • 2013-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-04
  • 2016-12-12
  • 1970-01-01
相关资源
最近更新 更多