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

Blaze Persistence CTE查询抛出QuerySqmImpl相关ClassCastException问题

Blaze Persistence CTE查询抛出QuerySqmImpl相关ClassCastException问题

遇到这个问题大概率是Blaze Persistence与Hibernate的版本兼容性不匹配导致的,咱们结合你的场景来分析:

问题根源

你的项目用的是Spring Boot 3.2.2,这个版本默认集成的是Hibernate 6.4.x,但你引入的Blaze Persistence集成依赖是blaze-persistence-integration-hibernate-6.2——这个依赖是专门适配Hibernate 6.2版本的。Hibernate 6.2到6.4的内部API(比如QuerySqmImpl类的结构、代理生成逻辑)发生了变化,导致Blaze Persistence在尝试转换查询对象时出现类型转换失败。

解决方案

你可以从以下两个方向解决:

方案1:升级Blaze Persistence版本以适配Hibernate 6.4

Blaze Persistence从1.6.12版本开始支持Hibernate 6.4,你需要做两步调整:

  • 将blaze-persistence.version改为1.6.12或更高版本
  • 把Hibernate集成依赖替换为适配6.4的版本:
<dependency>
    <groupId>com.blazebit</groupId>
    <artifactId>blaze-persistence-integration-hibernate-6.4</artifactId>
    <scope>runtime</scope>
</dependency>

方案2:降级Spring Boot版本以匹配现有Blaze Persistence依赖

如果你暂时不想升级Blaze Persistence,可以将Spring Boot版本降级到3.1.x系列,这个版本默认集成的是Hibernate 6.2,和你当前用的blaze-persistence-integration-hibernate-6.2完全兼容。

额外检查点

确认所有Blaze Persistence依赖都是jakarta后缀的(比如你用的blaze-persistence-core-api-jakarta),这和Spring Boot 3基于Jakarta EE的环境是匹配的,这部分你已经做对了。

如果调整版本后还是出现问题,可以检查项目中是否存在冲突的Hibernate依赖,确保Spring Boot自动引入的Hibernate版本和你需要的版本一致。

备注:内容来源于stack exchange,提问作者François Vanhille

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 11:53:16