ClassCastException HikariCPConnectionProvider无法强制转换为Hibernate ConnectionProvider

时间:2016-05-17 04:01:24

标签: java hibernate connection hikaricp pooling

我第一次尝试HikariCP。我正面临着ClassCastException

ClassCastException:org.hibernate.hikaricp.internal.HikariCPConnectionProvider无法强制转换为org.hibernate.service.jdbc.connections.spi.ConnectionProvider

更新:我也尝试过com.zaxxer.hikari.hibernate.HikariConnectionProvider,并获得相同的异常。

以下是persistence.xml

的配置
<properties>
        <property name="hibernate.connection.provider_class" value="org.hibernate.hikaricp.internal.HikariCPConnectionProvider" />
        <property name="hibernate.hikari.minimumIdle" value="5" />
        <property name="hibernate.hikari.maximumPoolSize" value="10" />
        <property name="hibernate.hikari.idleTimeout" value="30000" />
        <property name="hibernate.hikari.dataSourceClassName" value="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" />
        <property name="hibernate.hikari.dataSource.url" value="jdbc:mysql://localhost:3306/mydb" />
        <property name="hibernate.hikari.dataSource.user" value="dbusr" />
        <property name="hibernate.hikari.dataSource.password" value="pwd" />
    </properties>

我正在使用以下Hibernate和HikariCP版本。

<dependency>
        <groupId>com.zaxxer</groupId>
        <artifactId>HikariCP</artifactId>
        <version>2.4.5</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-hikaricp</artifactId>
        <version>5.1.0.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.1.0.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>5.1.0.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>5.2.4.Final</version>
    </dependency>

2 个答案:

答案 0 :(得分:0)

尝试替换

<property name="hibernate.connection.provider_class" 
       value="org.hibernate.hikaricp.internal.HikariCPConnectionProvider" />

通过

property name="hibernate.connection.provider_class"  
       value="com.zaxxer.hikari.hibernate.HikariConnectionProvider"

另请参阅Hibernate 5 + HikariCP + MySQL以了解使用Hikari和Hibernate5的其他人的设置。

答案 1 :(得分:0)

很抱歉,经过这么长时间我回答了我自己的问题。 我正面临这个问题因为我试图升级各种hibernate和hikari库版本,这导致我的maven build目标文件夹有多个版本的hibernate和hikari导致错误的版本被拾取。清理目标并修复几个pom文件后问题得以解决。 Hikari从那时起一直表现良好,并且在检测泄漏连接方面非常有帮助。