hibernate 4.2基于模式的多租户+ c3p0连接池

时间:2013-04-08 13:48:23

标签: java hibernate multi-tenant

我正在使用hibernate 4.2.0运行java应用程序(java 1.7),我需要实现基于模式的多租户设置。我使用this示例来做到这一点。 我的问题是我无法弄清楚如何创建连接提供程序。该示例使用:

    acmeProvider = ConnectionProviderBuilder.buildConnectionProvider( "acme" );
    jbossProvider = ConnectionProviderBuilder.buildConnectionProvider( "jboss" );

ConnectionProviderBuilder 供测试使用。

我尝试使用以下内容:

    C3P0ConnectionProvider connectionProvider = new C3P0ConnectionProvider()
    {
        public boolean supportsAggressiveRelease()
        {
            return allowAggressiveRelease;
        }
    };

    connectionProvider.configure(props);

这里的问题是C3P0ConnectionProvider有一个null serviceRegistry,它会破坏NPE。

有没有人知道如何为每个租户创建ConnectionProvider?

谢谢,

罗南

1 个答案:

答案 0 :(得分:0)

尝试使用 Properties 添加数据源属性的 suggestion

<块引用>
DatasourceConnectionProviderImpl cp = new DatasourceConnectionProviderImpl();
cp.setDataSource(ds);
Properties p = new Properties();
// ...
cp.configure(p);

或使用DriverManagerConnectionProviderImpl

<块引用>
DriverManagerConnectionProviderImpl connectionProvider = new DriverManagerConnectionProviderImpl() {
   public boolean supportsAggressiveRelease() {
     return allowAggressiveRelease;
   }
 };
 connectionProvider.configure( props );