gpt4 book ai didi

java - 最新的 Postgres JDBC41 不适用于 HikariCP 和 Hibernate : isValid() not implemented

转载 作者:行者123 更新时间:2023-11-29 12:05:06 24 4
gpt4 key购买 nike

我想迁移我们的 Java servlet 以使用 Hikari 连接池而不是 C3P0。然而,我遇到了一个奇怪的错误——在 Hibernate 启动期间,servlet 崩溃:

方法 org.postgresql.jdbc4.Jdbc4Connection.isValid(int) 尚未实现。

这是一个奇怪的行为,因为我们使用的是最新的 JDBC41 postgresql 驱动程序,摘 self 们的 pom.xml:

<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.3-1102-jdbc41</version>
</dependency>

并根据changelog在 JDBC 驱动程序中,isValid() 方法应该已在 9.3-1102 中正确实现。我们将此版本的驱动程序与 C3P0 一起使用,完全没有问题。

我们还尝试使用 Pgsql-NG JDBC 驱动程序,它工作正常,但在处理 PostGIS 数据类型时出现错误。

我还尝试将 Hikari 配置中的 connectionTestQuery 设置为 SELECT 1 以强制 Hikari 不使用 isValid(),但是这没有效果。

有人遇到过这个问题或有一些解决方法吗?

最佳答案

如果使用 Spring 试试这个:

<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
<constructor-arg ref="hikariConfig" />
</bean>

<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
<property name="poolName" value="springHikariCP" />
<property name="dataSourceClassName" value="org.postgresql.ds.PGSimpleDataSource" />
<property name="maximumPoolSize" value="30" />
<property name="connectionTestQuery" value="select 1"/>
<property name="dataSourceProperties">
<props>
<prop key="serverName">${jdbc.serverName}</prop>
<prop key="portNumber">${jdbc.portNumber}</prop>
<prop key="databaseName">${jdbc.databaseName}</prop>
<prop key="user">${jdbc.user}</prop>
<prop key="password">${jdbc.password}</prop>
</props>
</property>
</bean>

内部将SELECT 1替换为isValid(),性能没有问题

版本:

    <dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>2.4.1</version>
<scope>compile</scope>
</dependency>

<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.3-1103-jdbc41</version>
</dependency>

关于java - 最新的 Postgres JDBC41 不适用于 HikariCP 和 Hibernate : isValid() not implemented,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27470190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com