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

Spring 6集成Hibernate 5失败,出现NoSuchMethodError错误求助

Spring 6与Hibernate 5集成报错问题解决

问题描述

搭建Spring 6与Hibernate 5的集成环境时,使用org.springframework.orm.hibernate5.LocalSessionFactoryBean初始化会话工厂,会触发org.springframework.orm.hibernate5.SpringSessionContext的初始化,在其构造方法执行this.transactionManager = jtaPlatform.retrieveTransactionManager();时抛出以下错误:

java.lang.NoSuchMethodError: 'jakarta.transaction.TransactionManager org.hibernate.engine.transaction.jta.platform.spi.JtaPlatform.retrieveTransactionManager()'

核心结论

是的,Spring的hibernate5集成包(属于spring-orm模块)确实依赖javax命名空间的API,和Spring 6的jakarta环境不兼容。

原因分析

  • Hibernate 5基于JEE 8规范开发,其JtaPlatform.retrieveTransactionManager()方法返回的是javax.transaction.TransactionManager;
  • Spring 6全面切换到Jakarta EE 9+规范,类路径中事务API已替换为jakarta.transaction命名空间,导致Spring的hibernate5集成代码调用方法时,找不到返回类型匹配的版本,从而抛出NoSuchMethodError。

解决方案

  • 优先选择升级Hibernate到6.x版本:Hibernate 6完全适配Jakarta EE规范,可与Spring 6无缝集成;
  • 若必须保留Hibernate 5,需降级Spring框架到5.x版本,确保两者依赖的API命名空间一致(均为javax)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 10:24:52