【问题标题】:Access to multiple identical databases访问多个相同的数据库
【发布时间】:2013-11-11 00:03:01
【问题描述】:

我正在研究将 Play 2/Java 用于需要能够访问多个相同数据库(使用 Ebean 或其他 ORM)的应用程序的可能性。我发现了一些与 Play 1 相关的关于这个主题的讨论,但对于 Play 2 来说并不多。任何指针将不胜感激。

【问题讨论】:

  • 更准确地写出你想要达到的目标
  • 我在对 vivekj011 的回复中添加了更多细节。主要目标是创建一个 JPA 映射(用于“主”数据库)并使用它来访问大量相同的数据库(“主”数据库的克隆)。

标签: playframework-2.0


【解决方案1】:

使用 JPA(使用 Ebean 或 Hibernate),您可以使用来自同一个 play-2.x 应用程序的多个数据库。

一些参考资料(第一个有例子):

  1. https://github.com/cm0s/play2-jpa-multiple-persistenceunit
  2. Play framework 2 + JPA with multiple persistenceUnit

您需要做的就是在您的 persistence.xml 文件中拥有多个持久性单元(每个持久性单元将代表一个数据库)。

【讨论】:

  • 谢谢!这几乎就是我要寻找的 :) 我仍然有点模糊的是如何使它足够通用,这样我就不必创建一个单独的控制器方法,并用特定的 persistenceUnit 进行注释。基本上我要解决的问题是可能有数百个相同的数据库(每个客户都有自己的数据库)。需要根据用户凭据确定特定的持久性单元。是否可以以编程方式指定持久性单元 vs.使用注释?
  • 好的,通过查看您的用例,您无法使用注释。 JPA 的实体管理器将解决您的问题。对于不同的用户,您需要不同的实体管理器实例。您需要做的是,根据用户凭据,您将获得不同的 entitymanager 实例,然后所有流程都将相同。默认情况下,您的 persistence.xml 文件中需要一个持久性单元。并且根据用户凭据,只需覆盖持久单元的那些属性,这些属性对于不同的用户是不同的。
猜你喜欢
  • 2014-11-12
  • 2014-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多