gpt4 book ai didi

java - 使用 hibernate 和 maven 从数据库生成 Java 类 - AnnotationConfiguration 丢失?

转载 作者:太空宇宙 更新时间:2023-11-04 15:02:43 33 4
gpt4 key购买 nike

我想使用 hibernate 从 MySQL 数据库创建 Java 类。仅使用 eclipse 和 Hibernate-Plugin,效果很好(此处描述: http://www.wikihow.com/Generate-Hibernate-Pojo-Classes-from-DB-Tables ),但我想用 maven 来完成。经过一番尝试后,这不起作用。

一般来说,我有一个 hibernate.cfg.xml 和一个 persistance.xml 文件,两者都具有正确的连接信息。我发现了一些关于如何从 java 生成类的线程(例如 How to configure hibernate-tools with maven to generate hibernate.cfg.xml, *.hbm.xml, POJOs and DAOs )和 hibernate-maven-plugin 的文档( http://mojo.codehaus.org/hibernate3-maven-plugin )。

我尝试了几个代码片段,对我来说最有希望的代码片段来自:Maven Java Source Code Generation for Hibernate

我添加了我需要的文件,我得到了:

           <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>hbm2java</goal>
</goals>
</execution>
</executions>
<configuration>
<components>
<component>
<name>hbm2java</name>
<implementation>configuration</implementation>
<outputDirectory>target/generated-sources/hibernate3</outputDirectory>
</component>
</components>
<componentProperties>
<drop>true</drop>
<jdk5>true</jdk5>
<configurationfile>/src/main/java/hibernate.cfg.xml</configurationfile>
<packagename>de.unileipzig.database</packagename>
</componentProperties>
</configuration>
</plugin>

但不幸的是,在执行时,我得到

 [ERROR] Failed to execute goal org.codehaus.mojo:hibernate3-maven-plugin:2.2:hbm2java (default-cli) on project AWV: Execution default-cli of goal org.codehaus.mojo:hibernate3-maven-plugin:2.2:hbm2java failed: An AnnotationConfiguration instance is required to use <mapping class="de.unileipzig.database.objectlist"/> -> [Help 1]

我在 google 上搜索了该错误,并在 http://www.mkyong.com/hibernate/hibernate-error-an-annotationconfiguration-instance-is-required-to-use/ 上找到了该错误那必须添加依赖项。这对我来说似乎有些尴尬,因为我正在使用 Hibernate 4 和 Hibernate 3 的 Maven 插件(hibernate 4 插件似乎不适用于我的情况: http://www.smartics.eu/hibernate4-maven-plugin/ ),但我尝试添加:

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>3.5.6-Final</version>
</dependency>

(因为在我的存储库中找不到 Mykong-Post 指定的版本)。

不幸的是,错误仍然发生。有人提示如何解决这个问题吗?是注释依赖有问题,还是我对插件的使用不正确?

根据 julschi 的建议,我在插件中添加了以下代码:

   <plugin>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>3.5.6-Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.5.6-Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>3.5.6-Final</version>
</dependency>
</dependencies>
</plugin>

不幸的是,这并没有改变任何事情。当我使用项目中使用的版本(Hibernate 4.2.7)时,会导致错误,找不到 org.hibernate.util.StringHelper ;它似乎被移动到另一个包( https://docs.jboss.org/hibernate/orm/4.1/javadocs/org/hibernate/internal/util/StringHelper.html )。但如果我使用版本 3.5.6-FINAL,我只会得到相同的 AnnotationConfiguration 错误。

如果有人想尝试一下:整个 POM 在这里:http://nopaste.info/a70449bee6.html

最佳答案

也许在插件部分本身创建一个依赖项部分,如下所示:

<plugin>
...
<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.2.144</version>
</dependency>
</dependencies>
...
</plugin>

关于java - 使用 hibernate 和 maven 从数据库生成 Java 类 - AnnotationConfiguration 丢失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22379759/

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