lpx12301124 2015-05-18 18:11 采纳率: 0%
浏览 718

ExtendedMappings把接口Mappings 作为超类

如题 今天在用maven配置spring MVC + hibernate的时候 突然遇到了这个问题 我的java环境是1.8tomcat

 Caused by: java.lang.IncompatibleClassChangeError: class org.hibernate.cfg.ExtendedMappings has interface org.hibernate.cfg.Mappings as super class
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2472)
    at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:854)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1274)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1157)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2472)
    at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:854)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1274)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1157)
    at org.hibernate.cfg.Configuration.createMappings(Configuration.java:913)
    at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1404)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1846)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1930)
    at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:372)
    at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:454)
    at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:439)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1633)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1570)
    ... 21 more

百度看了好多问题 都说是包冲突,但是我都删掉了hibernate-annotations.jar,hibernate-commons-annotations.jar,hibernate-entitymanager.jar这几个包 还是不行
这是我的pom.xml的配置
图片说明
我也找到了ExtendedMappings类所在的位置
图片说明
jar视图是这样的
图片说明
我现在就是不明白 我没有用maven配置的时候用的是hibernate-core3.6.5没有问题 但是用了maven之后却出现了这个问题

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-03 21:52
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这个问题是由Hibernate 4.3.x版本的特性引起的。在Hibernate 4.3.x中,它引入了ExtendedMappingsMappings两个接口。ExtendedMappingsMappings的一个子接口,并且默认继承自Mappings。这意味着在使用ExtendedMappings时,你必须提供一个实现Mappings接口的类。

    为了解决这个问题,你可以尝试以下步骤:

    1. 将你的ExtendedMappings类重写为实现Mappings接口,或者将它改为继承自Mappings接口。
    2. 在你的配置文件中,确保你在创建SessionFactory实例时调用buildSessionFactory方法,而不是直接使用createMappings方法。
    3. 如果可能的话,考虑使用Hibernate 5或更高版本,因为它们已经移除了ExtendedMappings接口。

    如果你的项目中已经有多个依赖于ExtendedMappings的模块,请考虑更新这些依赖到最新的版本,或者找到一种替代的方法来避免这个冲突。

    评论

报告相同问题?

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀