我第一次尝试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>
答案 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从那时起一直表现良好,并且在检测泄漏连接方面非常有帮助。