ClassCastException HikariCPConnectionProvider 无法转换为 Hibernate ConnectionProvider

ClassCastException HikariCPConnectionProvider cannot be cast to Hibernate ConnectionProvider

我是第一次尝试 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>

尝试替换

<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 的设置。

很抱歉过了这么久才回答我自己的问题。 我遇到这个问题是因为我试图升级各种 hibernate 和 hikari 库版本,这导致我的 maven build 目标文件夹有多个版本的 hibernate 和 hikari 导致错误的版本被拾取。清理目标并修复几个 pom 文件后,问题得到解决。 从那时起,Hikari 一直做得很好,而且它在检测泄漏连接方面也很有帮助。