【发布时间】:2018-09-27 08:57:03
【问题描述】:
我有两个项目,maven。
- A - 休息应用,使用休眠 5.2.16.FINAL,包括 B(不包括其休眠)
- B - 库,使用休眠 4.3.9
项目 A 创建自己的上下文,导入 DBConfig(Bs 的副本)替换 B 以使用正确的 hibernate5.HibernateTransactionManager, hibernate5.LocalSessionFactoryBean
项目 A 在 B -> DAO -> 获取会话 -> createSQLQuery 中调用服务。 这失败了
java.lang.NoSuchMethodError: org.hibernate.Session.createSQLQuery(Ljava/lang/String;)Lorg/hibernate/SQLQuery;
当我在 B 中将 hibernate 更改为 5.2.16 而没有任何进一步的代码更改时,它可以工作,或者如果我将 DAO 从 B 移动到 A(也在上下文中进行了适当的配置 - 包括移动的 DAO 并排除了一个来自 B - 因为 bean 名称重复)它也有效?!
这怎么可能?我真的不明白或错过了什么。在项目 B 上没有任何代码更改,只需配置 maven hibernate 依赖项(如上所述,在 A 中排除),代码在 DAO.createSQLQuery 上运行或失败。
有人有什么想法吗?
谢谢。
【问题讨论】:
标签: java spring hibernate maven spring-mvc