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

升级Spring Boot至3.1.1时出现BasicValue转ToOne类型转换异常

Spring Boot 3.1.1升级时遇到ClassCastException异常解决思路

异常信息

Caused by: java.lang.ClassCastException: class org.hibernate.mapping.BasicValue cannot be cast to class org.hibernate.mapping.ToOne (org.hibernate.mapping.BasicValue and org.hibernate.mapping.ToOne are in unnamed module of loader 'app')

可能原因

  • 实体类中错误地在基础类型字段上使用了关联映射注解(如@ManyToOne、@OneToOne)
  • XML映射文件(hbm.xml)里把基础类型属性配置成了关联关系(比如误用<many-to-one>标签)
  • 自定义Hibernate扩展(拦截器、自定义类型)未适配Hibernate 6.2(Spring Boot 3.1.x对应的Hibernate版本)的API变更
  • 项目存在Hibernate版本依赖冲突

解决方案

  • 检查实体注解:遍历所有实体类,确认@ManyToOne、@OneToOne这类关联注解仅用于关联实体类型的字段,避免在String、Integer等基础类型字段上误用。比如不能写@ManyToOne private String userId;,应关联到对应的实体类。
  • 排查XML映射文件:若使用hbm.xml配置映射,确保<many-to-one>、<one-to-one>等关联标签只对应关联实体属性,基础类型属性用<property>标签配置。
  • 适配自定义Hibernate组件:如果有自定义的Hibernate相关代码(比如自定义类型、拦截器),检查是否依赖了org.hibernate.mapping包下的内部API,这类API在Hibernate 6.x中可能有调整,需修改代码适配新版本。
  • 清理依赖冲突:通过mvn dependency:tree(Maven)或./gradlew dependencies(Gradle)排查依赖树,排除与Spring Boot 3.1.1自带Hibernate版本冲突的依赖,避免手动引入旧版本hibernate-core。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 00:02:40