Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用hibernate对POJO进行反向工程的最佳方法_Java_Hibernate_Hibernate Tools - Fatal编程技术网

Java 使用hibernate对POJO进行反向工程的最佳方法

Java 使用hibernate对POJO进行反向工程的最佳方法,java,hibernate,hibernate-tools,Java,Hibernate,Hibernate Tools,从数据库对POJO进行反向工程的最佳(最简单)方法是什么?我想从表中生成大约40个实体类,只是为了节省大量输入。我想使用Hibernate工具集,但所有的例子似乎都不完整或相互矛盾——一些引用使用Ant任务,一些引用Maven插件,Jboss站点本身表明Hibernate工具4.x现在似乎是一个Eclipse插件 从零开始,“正确”的方法是什么?我实际上使用了一个Ant任务。如果您需要对数据库中的POJO进行反向工程,并且没有现成的基础设施,我相信Ant方法是最好的。我从一开始就能够剪切和粘贴我

从数据库对POJO进行反向工程的最佳(最简单)方法是什么?我想从表中生成大约40个实体类,只是为了节省大量输入。我想使用Hibernate工具集,但所有的例子似乎都不完整或相互矛盾——一些引用使用Ant任务,一些引用Maven插件,Jboss站点本身表明Hibernate工具4.x现在似乎是一个Eclipse插件


从零开始,“正确”的方法是什么?

我实际上使用了一个Ant任务。如果您需要对数据库中的POJO进行反向工程,并且没有现成的基础设施,我相信Ant方法是最好的。我从一开始就能够剪切和粘贴我需要的大部分代码。我通过实验发现,需要一些额外的罐子,经过一些调整后,我能够在相当短的时间内生成所需的POJO

这假设您了解基本的Java术语和一点关于Ant的知识,并且已经安装了这两个术语。以下是步骤

您需要创建两个文件(build.xml和hibernate.cfg.xml)并下载一些JAR。如果您在代理或防火墙后面,您可能还需要下载Hibernate DTD文件(因为Hibernate将尝试走出去读取DTD)。就这样

创建以下目录:

/myantproject
    /lib
    /src
在“myantproject”目录中创建build.xml文件,如下所示:

<project name="antbuild" basedir="." default="gen_hibernate">

    <taskdef name="hibernatetool"
             classname="org.hibernate.tool.ant.HibernateToolTask">
        <classpath>
            <fileset dir="lib">
                <include name="**/*.jar"/>
            </fileset>
        </classpath>
    </taskdef>

    <target name="gen_hibernate"
            description="generate hibernate classes">
        <hibernatetool>

            <jdbcconfiguration
                    configurationfile="hibernate.cfg.xml"
                    packagename="com.mycompany.model"
                    detectmanytomany="true"
                    />
            <hbm2hbmxml destdir="src" />
            <hbm2java  destdir="src" />
        </hibernatetool>
    </target>

</project>
然后,您可以将其粘贴到“lib”目录中

这是我用的罐子。有了这些JAR,您应该能够运行这个Ant任务,它将对您在“hibernate.cfg.xml”中指向的数据库中的所有表进行反向工程

它们来自不同的来源——大多数来自apache.org或hibernate.org。您将需要数据库供应商提供的数据库JDBC JAR(在本例中是IBM提供的AS400连接器JAR)来连接到数据库。我还需要下载这些DTD,因为我在防火墙后面:

hibernate-mapping-3.0.dtd
hibernate-reverse-engineering-3.0.dtd

祝你好运

SpringRoo在Hibernate/JPAEclipse上提供了良好的反向工程支持,Jboss工具(主要)完成了这项工作。除非您不想使用Eclipse…最好的是Hibernate工具,其次是Ant tasksHibernate工具Eclipse插件非常好,直到您需要记录流程,所以您可以编写自己的DelegatingReverseengEngineeringStrategy来更改一些事情。那么,您最好首先从一个Ant任务开始。在启动概要文件中没有调试日志按钮和Eclipse控制台视图,这真是令人头痛。
"file:///mypath/myantproject/lib/hibernate-configuration-3.0.dtd"
cglib-nodep-2.2.3.jar
commons-collections-3.2.1.jar
commons-logging-1.1.1.jar
dom4j-1.6.1.jar
freemarker-2.3.8.jar
hibernate-annotations-3.5.0-Final.jar
hibernate-commons-annotations-4.0.1.Final.jar
hibernate-configuration-3.0.dtd
hibernate-core-3.3.1.GA.jar
hibernate-entitymanager-4.2.0.Final.jar
hibernate-tools-3.2.3.GA.jar
jt400-6.6.jar
jtidy-r938.jar
log4j-1.2.16.jar
slf4j-api-1.7.5.jar
hibernate-mapping-3.0.dtd
hibernate-reverse-engineering-3.0.dtd