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

运行Hibernate删除操作时遭遇ConversionException异常

运行Hibernate删除操作时遭遇ConversionException异常

看起来你在执行Hibernate删除操作时碰到了一个棘手的ConversionException,而且奇怪的是查询HQL能正常工作,这确实让人摸不着头脑。咱们一步步来拆解问题:

核心问题根源

你当前使用的是Hibernate 6.0.0.Alpha1——这是一个非常早期的预览版本,本身就存在大量未修复的Bug和兼容性问题。错误栈里的Could not resolve unique-identifier to SqmFrom正是Hibernate 6早期版本中,SQM(语义查询模型)解析删除语句时的一个已知Bug,后续的稳定版本已经修复了这个问题。

具体解决方案

  • 立即升级Hibernate到稳定版本:这是最关键的一步。打开你的pom.xml,把Hibernate Core的版本从6.0.0.Alpha1替换成最新的稳定版(比如目前的6.4.x系列)。示例修改如下:
    <dependency>
        <groupId>org.hibernate.orm</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>6.4.4.Final</version> <!-- 建议使用最新稳定版 -->
    </dependency>
    
  • 确认HQL语法没问题:你的删除语句delete from AlienDO where alienId = :id是完全符合规范的,和实体类的属性映射也对应(查询能正常运行也佐证了这一点),所以语法本身不是问题。
  • 小细节优化:你的App.java里重复导入了org.hibernate.query.Query,可以删掉其中一个;升级Hibernate后,@SuppressWarnings("deprecation")注解也可能不再需要,因为新版本已经优化了buildSessionFactory()相关的API。

总结

这个异常几乎可以肯定是Hibernate早期Alpha版本的Bug导致的,升级到稳定版本后,SQM解析删除语句时的标识符问题就会被解决,你的删除操作应该就能正常执行了。

备注:内容来源于stack exchange,提问作者Ankit Bhardwaj

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 03:18:16