2

有没有一种方法可以让 JPA(特别是 Eclipselink)根据绑定到当前线程的某些属性来动态选择连接池?

我要解决的问题是扩展多租户系统,其中租户可能被拆分为多个数据库实例。每个数据库实例都是多租户的,但为了扩展,我可能无法将所有租户舒适地容纳在一个数据库实例中。

我熟悉@Multitenant支持单表多租户,并成功使用 Eclipselink 会话事件回调在 Eclipselink 中Session动态设置值。我正在尝试更改 EntityManager 将使用的下一步DataSource,因此我不必使用集群数据库。

谢谢!

4

3 回答 3

0

您可以使用一个EntitiyManagerFactory允许EntitiyManager为特定数据源(通过字符串属性)创建一个,如下所述

http://foobar.lu/wp/2010/12/30/change-jpa-entitymanager-connection-properties-at-runtime/

于 2012-07-20T08:40:49.023 回答
0

您可能想查看这篇文章。它可能会有所帮助或为您提供有关如何实现解决方案的线索。

于 2012-07-23T18:12:47.543 回答
0

看看这个

http://code.google.com/p/jdbc-helper/wiki/LoadBalancingDataSource

它创建一个负载平衡到后端数据源的数据源。

于 2012-07-14T19:34:06.347 回答