gpt4 book ai didi

Java Eclipse : Hibernate Configuration to AnnotationConfiguration does not work and gives the runtime error

转载 作者:行者123 更新时间:2023-12-01 13:22:08 24 4
gpt4 key购买 nike

最近,我创建了一个 Maven 项目,在其中创建了以下文件

  1. 模型类
  2. 调用类(实例化模型类对象并创建 session 工厂)
  3. Hibernate.cfg.xml 文件

    org.postgresql.Driver jdbc:postgresql://localhost:8080/dev 温度 温度 1

        <!-- SQL Dialect -->
    <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
    <property name="hbm2ddl.auto">create</property>

    <!-- Names the annotated entity class -->

    <!-- List of XML mapping files -->
    <mapping class="org.test.livejava.machine.UserDetails" />

  4. 在 Maven 中添加了以下依赖项。

    UTF-8

    JBoss 存储库 http://repository.jboss.org/nexus/content/groups/public/ 朱尼特 朱尼特 3.8.1 org.codehaus.mojo hibernate3-maven-插件 2.0 org.slf4j slf4j-api 1.7.6 编译 org.postgresql PostgreSQL 9.3-1100-jdbc41

    <dependency>
    <groupId>javax.persistence</groupId>
    <artifactId>persistence-api</artifactId>
    <version>1.0.2</version>
    </dependency>
    <!-- Hibernate annotation -->
    <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>3.6.3.Final</version>
    </dependency>

    <dependency>
    <groupId>javassist</groupId>
    <artifactId>javassist</artifactId>
    <version>3.12.1.GA</version>
    </dependency>

现在,当我运行该程序并运行它时,它会出现以下错误。

19:04:12,784  INFO org.hibernate.cfg.Environment - Hibernate 3.2.0.cr5
19:04:12,786 INFO org.hibernate.cfg.Environment - hibernate.properties not found
19:04:12,787 INFO org.hibernate.cfg.Environment - Bytecode provider name : cglib
19:04:12,789 INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
19:04:12,818 INFO org.hibernate.cfg.Configuration - configuring from resource: /hibernate.cfg.xml
19:04:12,818 INFO org.hibernate.cfg.Configuration - Configuration resource: /hibernate.cfg.xml
org.hibernate.MappingException: An AnnotationConfiguration instance is required to use <mapping class="org.test.livejava.machine.UserDetails"/>
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1524)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1479)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1458)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1432)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1352)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1338)
at org.test.livejava.machine.machine.main(machine.java:29)

在阅读了已弃用的 Configuration 方法后,我使用了 AnnotationsConfiguration(),它开始出现以下错误。

Exception in thread "main" java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at org.test.livejava.machine.machine.main(machine.java:29)

有人在编译时遇到过同样的问题吗?我不知道为什么这无法找到正确加载它,即使所有 Maven 依赖项似乎都包含在内

感谢您抽出宝贵时间并帮助调查!

谢谢!

最佳答案

您的 Maven 依赖项列出了 3.6.3.Final 的 Hibernate 版本,但您的日志表明 3.2.0.cr5 的 Hibernate 版本(请注意,即使您需要保留 Hibernate 3,错误修复截至 3.6.10)。

问题在于尝试在运行时使用 Hibernate 的古老版本:您要么没有使用 Maven 来启动该程序,要么没有将其编译成 fat war 或 jar。

关于Java Eclipse : Hibernate Configuration to AnnotationConfiguration does not work and gives the runtime error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21962874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com