【问题标题】:ClassCastException HikariCPConnectionProvider cannot be cast to Hibernate ConnectionProviderClassCastException HikariCPConnectionProvider 无法转换为 Hibernate ConnectionProvider
【发布时间】:2016-05-17 04:01:24
【问题描述】:

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

【问题讨论】:

    标签: java hibernate connection hikaricp pooling


    【解决方案1】:

    尝试替换

    <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。

    【讨论】:

    • 我也得到了与 com.zaxxer.hikari.hibernate.HikariConnectionProvider 相同的 ClassCastException。 :(
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2014-05-30
      • 1970-01-01
      • 1970-01-01
      • 2020-10-04
      • 2012-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多