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

Spring Boot 3.2.0迁移后JPA @Query布尔比较查询报错求助

解决Spring Boot 2.7.1迁移至3.2.0的JPQL语法错误问题

核心问题原因

Spring Boot 3.x默认适配Hibernate 6.x,该版本对JPQL语法规则做了严格化调整,原有的布尔字段IS TRUE写法不再被语法解析器支持,这是触发BadJpqlGrammarException的直接原因。

修复步骤

1. 修正JPQL查询语句

将Repository中的自定义查询替换为以下任意一种合法写法:

  • 直接引用布尔字段(推荐,最简洁):
@Query("select t from Tutorial t where t.published")
List<Tutorial> getTutorial();
  • 使用等于判断:
@Query("select t from Tutorial t where t.published = TRUE")
List<Tutorial> getTutorial();

2. 处理ANTLR版本不匹配警告

Eclipse中的ANTLR版本警告,是因为Hibernate 6依赖ANTLR 4.13.x,若项目或IDE存在旧版本ANTLR依赖,可在pom.xml中显式指定版本解决:

<dependency>
    <groupId>org.antlr</groupId>
    <artifactId>antlr4-runtime</artifactId>
    <version>4.13.1</version>
</dependency>

3. 补充迁移注意事项

  • 全面排查JPQL查询:Hibernate 6对JPQL语法校验更严格,隐式类型转换、关键字使用等场景都可能触发新的语法错误,需逐一检查所有自定义查询。
  • 确认基础环境兼容性:Spring Boot 3.x要求JDK 17及以上,同时需确保第三方依赖已适配Spring Boot 3.x版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 13:55:00