hbm2java 3 - 找不到映射类

问题描述 投票:0回答:1

我使用下面的插件生成我的实体类。 当我执行命令 mvn hibernate3:hbm2java 我确实收到了这个错误:

创建 AntRun 任务时出错。:发生 Ant BuildException:java.lang.NoClassDefFoundError: org/hibernate/engine/Mapping: org.hibernate.engine.Mapping

我确实尝试了每个休眠版本,但我找不到包含指定类的版本。

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>hibernate3-maven-plugin</artifactId>
    <version>3.0</version>
    <executions>
        <execution>
            <id>generate-entities</id>
            <phase>post-clean</phase>
            <goals>
                <goal>hbm2java</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <hibernatetool destdir="${project.build.sourceDirectory}">
            <classpath>
                <path location="${project.build.sourceDirectory}/classes"/>
            </classpath>
            <!--<configuration configurationfile="src/main/resources/hibernate/hibernate.cfg.xml"/> -->
            <jdbcconfiguration
                    packagename="com.cm.sourcegenerator"
                    revengfile="src/main/resources/hibernate/hibernate.reveng.xml"
            />
            <hbm2java jdk5="true" ejb3="true"/>
            <!--<hbm2cfgxml ejb3="true" destdir="${basedir}/src/main/resources/hibernate" /> -->

        </hibernatetool>

    </configuration>
    <dependencies>
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <version>8.0.33</version>
        </dependency>
        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib</artifactId>
            <version>${cglib.version}</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>4.3.11.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>4.3.11.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>4.1.0.Final</version>
        </dependency>
        <dependency>
            <groupId>jakarta.xml.bind</groupId>
            <artifactId>jakarta.xml.bind-api</artifactId>
            <version>2.3.2</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jaxb</groupId>
            <artifactId>jaxb-runtime</artifactId>
            <version>2.3.2</version>
        </dependency>
    </dependencies>
</plugin>
java hibernate maven-plugin hibernate3-maven-plugin
1个回答
0
投票

Mapping接口在Hibernate 4及之后的版本中被移除。相反,您可以使用 MetadataImplementor 接口来访问实体的元数据。

因为您使用的是 Hibernate 4.3.11。最后,您可以尝试更改 hibernate3-maven-plugin 配置以使用 MetadataSources 工具而不是 HibernateTool。您可以通过将当前配置替换为:

<metadataSources destdir="${project.build.sourceDirectory}">
    <classpath>
        <path location="${project.build.sourceDirectory}/classes"/>
    </classpath>
    <configuration>
        <jdbc-connection>
            <!-- your database connection details here -->
        </jdbc-connection>
        <hibernate-mapping package="com.cm.sourcegenerator">
            <fileset dir="${basedir}/src/main/resources/hibernate">
                <include name="**/*.hbm.xml"/>
            </fileset>
        </hibernate-mapping>
    </configuration>
</metadataSources>
© www.soinside.com 2019 - 2024. All rights reserved.