0

我使用 Proxool 0.9.1。

自 Hibernate 4.x 以来,ProxoolConnectionProvider 已移至 org.hibernate.service.jdbc.connections.internal 数据包(在 jar 中:${hibernate-release-4.x}/lib/optional/proxool/hibernate-proxool-4. x.jar)。

当我从 3.x 升级到 4.x 时(配置没有改变),它总是告诉我

Exception: the url can not be null

...所以我跟踪了Hibernate源代码,发现public void configure(Properties props)ProxoolConnectionProvider中的方法从来没有被调用过,所以ProxoolConnectionProvider中的所有属性都是null。

谁能帮我解决这个问题?

4

1 回答 1

0

这是由于 Hibernate 4.x 中的错误 ( HHH-7289 )

您可以通过扩展 org.hibernate.service.jdbc.connections.internal.ProxoolConnectionProvider 并实现 org.hibernate.service.spi.Configurable 接口来解决此问题。例如:

public class ConfigurableProxoolConnectionProvider extends ProxoolConnectionProvider implements Configurable
    @Override
    public void configure( final Map configurationValues ) {
        final Map<?,?> configuration = (Map<?,?>) configurationValues;
        final Properties properties = new Properties( );
        for ( final Map.Entry entry : configuration.entrySet() ) {
            properties.setProperty(
                String.valueOf( entry.getKey() ),
                String.valueOf( entry.getValue() ) );
        }       
        super.configure( properties );
    }
}

然后在“hibernate.connection.provider_class”下的休眠属性中引用扩展类(例如 xxx.yyy.ConfigurableProxoolConnectionProvider)。

于 2013-04-18T22:53:38.877 回答