我使用的是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源代码,发现从未调用过ProxoolConnectionProvider中的方法public void configure(Properties props)
,因此ProxoolConnectionProvider中的所有属性都为空。
有人可以帮我解决这个问题吗?
答案 0 :(得分: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'下的hibernate属性中引用扩展类(例如xxx.yyy.ConfigurableProxoolConnectionProvider)。