3

我正在尝试从映射 xml 文件生成 POJO。我读了一些关于添加 ant 任务的内容,以便轻松完成。

我已将此 xml 添加到我在 Netbeans 中的项目的 build-impl.xml 中,但没有任何反应:

<target name="codegen">
     <echo>Zippzip</echo>
    <taskdef name="hbm2java"
             classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask"
             classpathref="javac.classpath"/>
    <hbm2java 
              output="generated/src/">
        <fileset dir="cat/model/">
            <include name="**/*.hbm.xml"/>
        </fileset>
    </hbm2java>
</target>

我是 Netbeans、Ant 和 Hibernate 的初学者,谁能帮帮我?

PS我真的不知道'classpathref'应该是什么。我的意思是我知道它应该包含hibernate发行版的类路径。真正的问题是我不知道如何让 Ant 任务工作..

编辑:我发现上面的脚本不适用于 Hibernate3。我有另一个脚本,但仍然无法正常工作。显示的错误消息是:Could not create type hibernatetool as the class class org.hibernate.tool.ant.Hbm2JavaExporterTask has no compatible constructor;和脚本:

<target name="codegen">
    <taskdef name="hibernatetool"
        classname="org.hibernate.tool.ant.Hbm2JavaExporterTask">
        <classpath refid="project.classpath" />
    </taskdef>

    <hibernatetool destdir="cat/model/">
        <configuration configurationfile="hibernate.cfg.xml"/>
        <hbm2java />
    </hibernatetool>
</target>

这是 Hibernate3 兼容的,正如我在休眠文档中看到的那样:http: //docs.jboss.org/tools/2.1.0.Beta1/hibernatetools/html/ant.html#d0e2903

4

4 回答 4

1

想通了:应该用 'org.hibernate.tool.ant.HibernateToolTask​​' 替换 'org.hibernate.tool.ant.Hbm2JavaExporterTask'

于 2010-03-01T08:42:43.183 回答
1

我对 hbm2java 一无所知,但是在添加了上面代码中的任务之后,您需要将与此关联的 jar 添加到 Ant。这是通过将 jar 文件复制到$ANT_HOME/lib目录中来完成的。你做了这个了吗?

于 2010-03-01T00:19:16.093 回答
0

这就是我使用它的方式。

    <hibernatetool destdir="${src.java.dir}">
        <configuration>
            <fileset dir="${src.java.dir}">
                <include name="**/*.hbm.xml"/>
            </fileset>
        </configuration>
        <hbm2java/> <!-- Generate POJO source -->
    </hibernatetool>

</target>
于 2010-11-15T20:48:19.433 回答
0

您是否考虑过使用 jpa 注释而不是 xml?

于 2010-11-15T20:53:17.710 回答