怎么样使用应用middlegen同时生成.java和.hbm.xml文件?
怎么样使用应用middlegen同时生成.java和.hbm.xml文件?
刚开始研究hibernate,第一次尝试使用middlegen根据数据库结构来生成.java和.hbm.xml文件,在网上查了一些文章,比较顺利启动middlegen主界面,按了【genarate】按钮之后,发现只生成了一些.hbm.xml文件(这些过程网上介绍很多,就不说了),并没有同时生成.java文件,继续上网查,但是找到的都是说使用hbm2java来生成,可是我分明看到middlegen的build.xml文件中有一个target,name就是hbm2java,应该是可以使用middlegen一起生成.java文件的。国内网站用baidu.com搜索了一下,没有找到答案告诉我如何应用middlegen生成.java文件。于是只好跑到www.hibernate.org上查,还好真找到了。贴在这里,希望对看到的人会有帮助。
主要就是将原来build.xml文件中<target name="hbm2java".......这一段替换一下,并进行简单修改。替换内容如下:
<target name="hbm2java"
description="Generate .java from .hbm files." depends="init">
<property name="hbm.dir" location="${build.gen-src.dir}/com/yourcompany/youproject/pojos/"/>
<replaceregexp
match='cascade="none"'
replace='cascade="all"'
byline="true">
<fileset dir="${hbm.dir}" includes="MapRequest.hbm.xml,MapRun.hbm.xml" />
</replaceregexp>
<mkdir dir="${build.gen-src.dir}"/>
<taskdef
name="hbm2java"
classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask"
classpathref="lib.class.path"
/>
<hbm2java output="${build.gen-src.dir}" classpathref="lib.class.path">
<fileset dir="${build.gen-src.dir}">
<include name="**/*.hbm.xml"/>
</fileset>
</hbm2java>
</target>
然后还需要弄几个jar包到middlegen的lib中。包括:
hibernate2.jar
commons-lang-1.0.1.jar
jdom.jar
hibernate-tools.jar
这些包可以在middlegen扩展及hibernate中发现
然后用ant执行这个build.xml文件,命令行:
ant -file build.xml hbm2java
我这里效果还是很好的。