您好我知道Hibernate Eclipse插件可以帮助我们(通过一系列屏幕和按钮点击)为基础表生成POJO和DAO类。但我想在运行时环境中模仿它,即我希望能够以编程方式执行完全相同的步骤,我应该能够提供.cfg.xml文件,reveng.xml文件,数据库URL ,目标文件夹,通过main(String [] args)中的命令行/参数..
显然没有这样的工具可用于纯Hibernate场景。有一个被调整为生成spring框架的代码 - 但这对我来说并不直接使用。
我尝试下载hibernate-tools.jar的eclipse插件源代码,但是现在hibernate.org(新设计)的src代码下载链接由于某种原因被禁用了。
以前有人处理过这样的事吗?或者你能给我一些线索吗?
我已经尝试过某个JDBCReader类的对象,理由是使用JDBCReader的方法读取所有表,然后弄清楚如何使用hbm2POJO生成器类....
答案 0 :(得分:3)
似乎有一个ant task来执行此操作。您可以通过实例化org.hibernate.tool.ant.HibernateToolTask
并调用其execute()
方法以编程方式调用此ant任务。因此,您可以在编译时或运行时执行此操作。
但我会建议不要这样做。你没有告诉过使用这个场景,但我认为没有很多合理的场景。
答案 1 :(得分:3)
我希望能够以编程方式执行完全相同的步骤,我应该能够通过命令行提供.cfg.xml文件,reveng.xml文件,数据库URL,目标文件夹main(String [] args)
中的参数
Hibernate Tools for Eclipse and Ant可以分别通过Eclipse插件和Ant任务从Eclipse和Ant中使用,并且两者共享可以“以编程方式”重用的相同底层类(我不确定是什么你试图这样做。)
我尝试下载hibernate-tools.jar的eclipse插件源代码,但是现在hibernate.org(新设计)的src代码下载链接由于某种原因被禁用了。
您可以从JBoss subversion repositories获取Hibernate Tools来源。更确切地说,签出以下项目:http://anonsvn.jboss.org/repos/hibernate/trunk/HibernateExt/tools/。您正在寻找的课程位于org.hibernate.tool.hbm2x.*
。
答案 2 :(得分:0)
要自动生成pojos,您可以将一个maven-antrun-plugin插件添加到pom.xml文件中。
<build>
...
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<configuration>
<tasks>
<taskdef name="hibernatetool"
classname="org.hibernate.tool.ant.HibernateToolTask"
classpathref="maven.dependency.classpath"/>
<hbm2java output="src/generated">
<fileset dir="src/hibernate">
<include name="**/*.hbm.xml"/>
</fileset>
</hbm2java>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
或者您可以实际使用Hibernate工具任务生成pojo类。请参阅此git project以从hbm生成pojos。