You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JPQL查询Vehicle实体时持续触发SQLFeatureNotSupportedException错误

咱们先拆解下你遇到的错误核心:

Internal Exception: java.sql.SQLFeatureNotSupportedException: Method org.postgresql.jdbc.PgPreparedStatement.getLargeUpdateCount is not yet implemented.

这个问题的根源在于:EclipseLink 2.7.x版本默认会调用JDBC 4.2规范中的getLargeUpdateCount()方法,但你当前使用的PostgreSQL JDBC驱动(42.2.2)在特定查询场景下还未实现这个方法,再加上WebSphere Liberty的JTA数据源配置,最终触发了这个兼容性异常。

下面是按优先级排序的解决方案:

方案1:升级PostgreSQL JDBC驱动版本

PostgreSQL官方在驱动版本42.2.5及以后修复了getLargeUpdateCount的实现问题。你可以直接升级到最新稳定版(比如42.7.4,完全兼容PostgreSQL 9.6),替换项目中的旧驱动包后重新部署到WebSphere Liberty,这是最彻底的长期解决方案。

方案2:配置EclipseLink禁用大更新计数调用

如果暂时无法升级驱动,你可以在persistence.xml中添加EclipseLink专属属性,强制它使用传统的getUpdateCount()方法替代:

<persistence-unit name="local" transaction-type="JTA">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <jta-data-source>jdbc/postgres</jta-data-source>
    <!-- 添加以下配置 -->
    <properties>
        <property name="eclipselink.jdbc.use-large-update-count" value="false"/>
    </properties>
</persistence-unit>

这个配置会告诉EclipseLink不要调用那个未实现的JDBC 4.2方法,回退到兼容的旧逻辑。

方案3:检查WebSphere Liberty的数据源配置

确认你的server.xml中PostgreSQL数据源配置正确,没有额外的干扰属性:

<dataSource jndiName="jdbc/postgres" type="javax.sql.DataSource">
    <jdbcDriver libraryRef="PostgreSQLLib"/>
    <properties.postgresql serverName="你的数据库地址" portNumber="5432" databaseName="你的数据库名" user="数据库账号" password="数据库密码"/>
</dataSource>
<library id="PostgreSQLLib">
    <file name="你的PostgreSQL驱动jar包路径"/>
</library>

如果之前配置了类似useJDBC42这类自定义JDBC属性,可以尝试移除它们,排除干扰。

额外验证要点

  • 实体与查询正确性:你的JPQL语句SELECT v FROM Vehicle v是正确的,但要注意实体类中@Table和@Column使用了带引号的表名/列名,PostgreSQL中带引号的名称是区分大小写的,确保数据库中确实存在大写的"VEHICLES"表,以及"VEHICLE_ID"、"NAME"列,避免出现找不到表/列的次生问题。
  • Liberty特性兼容性:你启用的webProfile-8.0特性默认包含JPA 2.2,版本匹配没问题。

应用任一方案后,重新部署应用并观察retrieveVehiclesAtStartUp方法的输出,如果SQLFeatureNotSupportedException不再出现,就说明问题解决了。

内容的提问来源于stack exchange,提问作者Prachi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:06:59