同一项目引用两个不同版本的hibernate处理

情况描述:一个项目下有两个工程,一个为Spring工程,一个是SpringBoot工程,两个项目引用相同的BaseDao,SpringBoot版本1.5.3.RELEASE,Spring版本4.3.18.RELEASE.SpringBoot本身集成hibernate,并且对应版本号为5.0.12.Final,Spring工程引入的版本号为5.0.11.Final。两者版本号不同,但是版本间差距较小,调用起来没发现啥问题。

由于Spring工程涉及到的并发比较多,5.0.11.Final版本oracle数据库加锁查询无效,升级到了5.6.5.Final版本解决了,但是也带来了新的问题。SpringBoot工程调用BaseDao时,报​java.lang.NoSuchMethodError​ 找不到方法错误。

针对这一问题想过很多解决方法,比如说分两次编译(没有相关经验,网上也没有合适的方法,所以这个想法放弃了),还有<scope>provided</scope>配置,发现并没什么用。强行升级SpringBoot依赖的版本号,结果SpringBoot不支持报错。如果把SpringBoot版本升级至2.0.0.RELEASE版本,这个版本对应的hibernate为5.2.14.Final(这个版本hibernate解决了oracle数据库事务问题,5.2.1.Final版本解决的),对应的spring版本也要升到5.0.4.RELEASE版本,等等很多对应的组件需要相应的升级,并且升级带来的改动是非常巨大的,由于后面项目版本不需要在架构下进行迭代,如此大的改动是不可以接受的。

    所以综合考虑,把BaseDao相关问题提出来,分成两个包,两个工程分开调用,经过测试验证该方法可以解决此问题。

 

                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值