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」の下の hibernate プロパティで拡張クラス (xxx.yyy.ConfigurableProxoolConnectionProvider など) を参照します。

于 2013-04-18T22:53:38.877 に答える