3

マッピングxmlファイルからPOJOを生成しようとしています。簡単にできるように、アリのタスクを追加する方法について読んだことがあります。

以下の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では機能しないことがわかりました。別のスクリプトがありますが、まだ機能していません。表示されるエラーメッセージは次のとおりです。クラスクラスorg.hibernate.tool.ant.Hbm2JavaExporterTaskに互換性のあるコンストラクタがないため、タイプhibernatetoolを作成できませんでした。そしてスクリプト:

<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>

これは、Hibernateのドキュメントで見たように、Hibernate3と互換性があります:http://docs.jboss.org/tools/2.1.0.Beta1/hibernatetools/html/ant.html#d0e2903

4

4 に答える 4

1

hbm2javaについては何も知りませんが、上記のコードのようなタスクを追加した後、これに関連付けられたjarをAntに追加する必要があります。これは、jarファイルのinton$ANT_HOME/libディレクトリをコピーすることによって行われます。これやった?

于 2010-03-01T00:19:16.093 に答える
1

理解した:「org.hibernate.tool.ant.Hbm2JavaExporterTask」を「org.hibernate.tool.ant.HibernateToolTask​​」に置き換える必要があります

于 2010-03-01T08:42:43.183 に答える
0

xmlの代わりにjpaアノテーションを使用することを検討しましたか?

于 2010-11-15T20:53:17.710 に答える
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 に答える