SSH整合——spring跟hibernate兼容问题

本文记录了在使用Spring4.0.3和Hibernate5.2.6时遇到的版本兼容问题,具体表现为无法打开Hibernate会话进行事务处理。通过调整Spring ORM版本并正确配置事务管理器,最终解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BUG描述:
Could not open Hibernate Session for transaction; nested exception is java.lang.NoClassDefFoundError: org/hibernate/engine/transaction/spi/TransactionContext

解决过程:
发现可能是版本兼容问题,我用的是spring4.0.3,hibernate是5.2.6,在配置事务管理的时候需要引入
org.springframework.orm.hibernate5.HibernateTransactionManager,一开始我引入的是4,即
org.springframework.orm.hibernate4.HibernateTransactionManager
所以报错,但是spring-orm-4.0.5RELEASE里面没有5,只有3跟4,所以,我将这个jar化成了spring-orm-4.3.6.RELEASE,里面有345,换好后,又出现新的问题

这里写图片描述

找到问题所在
这里写图片描述

箭头所指的地方原来是3,改成5,程序正常

这个时候想起spring-orm-4.0.5.RELEASE是不是也能配hibernate5,于是又将jar换回原来的,将两个地方的引用都换成4

这里写图片描述

结果不行,4.0.5的spring不能匹配5.2.6的hibernate。
当然,我这里可能只是特例,可能是其他原因,这里给出一种猜测和解决方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值