生成方案以DB-->hbm.xml-->Pojo为例
ant的build文件
<?xml version="1.0" encoding="UTF-8" ?>
<project name="kums-Hibernate" basedir="." default="hibernatecode">
<property name="build.classpath" location="D:\jdk1.5.0_03" />
<property name="src.dir" location="../../src" />
<property name="build.dir" location="${app.dir}/WEB-INF/classes" />
<property name="lib.dir" location="${app.dir}/WEB-INF/lib" />
<!-- 引用的库 -->
<path id="toolslib">
<path location="lib/hibernate-tools.jar" />
<path location="lib/hibernate3.jar" />
<path location="lib/commons-logging.jar" />
<path location="lib/dom4j-1.6.1.jar" />
<path location="lib/ojdbc14.jar" />
<path location="lib/commons-collections-3.2.1.jar" />
<path location="lib/freemarker.jar" />
<path location="lib/jtidy-r8-20060801.jar" />
</path>
<taskdef name="hibernatetool" classname="org.hibernate.tool.ant.HibernateToolTask" classpathref="toolslib">
</taskdef>
<target name="hibernatecode">
<hibernatetool destdir="${src.dir}/generated">
<jdbcconfiguration propertyfile="${src.dir}/hibernate.properties" packagename="com.kurui.kums._entity" />
<!--由DB导出hbm.xml文件-->
<hbm2hbmxml />
<!-- 由hbm.xml文件生成POJO文件 -->
<hbm2java jdk5="true" />
<!-- 生成配置文件 -->
<hbm2cfgxml ejb3="false" />
<!-- 生成的dao -->
<hbm2dao />
</hibernatetool>
</target>
</project>
问题
1.org.hibernate.cfg.JDBCBinderException: Duplicate class name 'com.kurui.kums._entity.Countries' generated for 'org.hibernate.mapping.Table(SH.COUNTRIES)'. Same name where generated for 'org.hibernate.mapping.Table(SH.COUNTRIES)'
Oracle下见此问题,在hibernate.properties里加上hibernate.default_schema=username 即可
2.表较多的情况下,可否将生成的hbm.xml和Pojo指定到不同的目录下?
3.关于使用模版。
实际需求中往往还需要为PoJo生成的过程中定义一些规则(首字母、前缀等、自定义代码等),网上资料看都提到了使用模版,如下:
<!--运用模板生成自己想要的类-->
<hbmtemplate templatepath="template" template="dao/daohome"
filepattern="{package-name}/{class-name}Dao.java">
<property key="ejb3" value="false"/>
<property key="jdk5" value="true"/>
</hbmtemplate>
生成pojo类,其实hbm2java,hbm2dao都是hbmtemplate的一个简化版本,可以用宏理解
其中hbm2java等价于:但是此处的模板位置都是在heibernate-tool.jar中。如果需要自定义模板,则需要明确编写hbmtemplate。
<hbmtemplate templateprefix="pojo/" template="pojo/Pojo.ftl"
filepattern="{package-name}/{class-name}.java">
<property key="jdk5" value="true" />
<property key="ejb3" value="true" />
</hbmtemplate>
或者是
<hibernatetool destdir="${build.dir}/generated">
<classpath/>
<configuration configurationfile="hibernate.cfg.xml"/>
<!-- 用户模板 -->
<hbmtemplate exporterclass="my.own.Exporter" filepattern="."/>
</hibernatetool>
我的问题是,Pojo.ftl和exporterclass如何定义、如何引用,可有案例可供参阅?
原文链接:
https://riboseyim.github.io?source=iteye&pid=hibernate
分享到:
相关推荐
struts+hibernate+spring+xdoclet+ant+log4j 技术整合,有实例参考,最好的框架!
ant+hibernate+xdoclet 快速开发持久层的例子,包含源代码,说明文档)
基于Reactjs+Ant Design+Servlet宾馆管理系统 基于Reactjs+Ant Design+Servlet宾馆管理系统 基于Reactjs+Ant Design+Servlet宾馆管理系统 基于Reactjs+Ant Design+Servlet宾馆管理系统 基于Reactjs+Ant Design+...
ant+charDirector+dojo+dom+hibernate+junite+log4j+spring+struts+xml+jspSmartUpload 所有工具jar包 自己说实用不
ANT+协议 VS2015源文件
利用hibernate-Tools里的相关工具类,使得java实体类(POJO)、hbm映射文件、数据库表(Schema)之间可以相互转化。也就是说,只要有其中一样,就可以通过各种途径得到其它两样。如果手里已经有了其中一样东西,要想...
ant+selenium+testng自动化测试方案
Junit+ant+cobertura示例源码程序。
因为这本电子书太大了,只能分开上传,需要下载完 Struts_2+Spring_3+Hibernate整合开发.part1....该案例既提供了IDE无关的、基于Ant管理的项目源码,也提供了基于Eclipse IDE的项目源码,最大限度地满足读者的需求。
关于ant使用的sh项目,中文注释明显!!!
运动器材通信协议ANT+,压缩包内包含各种ANT+协议。各种运动器材,码表,心率带,速度踏频传感器等
基于Jmeter+Ant+SVN+Jenkins实现接口自动化测试
12.5 使用Hibernate的工具快速生成映射文件和POJO 12.5.1 使用MiddleGen根据数据库产生映射文件 12.5.2 使用hbm2java根据映射文件产生POJO 12.6 整合Struts、Spring和Hibernate实现用户管理 12.6.1 Struts、Spring和...
hibernate+spring +ant+junit 1.整合hibernate+spring 2.ant自动生成xml文件和api 3.junit测试hql语句 4.c标签写的前台分页程序
jmeter+ant+jenkins接口自动化测试框架,功能自动化和性能自动化均可
性能自动化测试(基于jmeter+jenkins+ant+tomcat),亲测可以顺利完成
本文件为ANT+协议开发的S212协议栈,可用于NORDIC产品芯片的ANT+协议开发。支持NRF52系列的NORDIC芯片ANT+开发
hibernate+spring+junit+ant+mysql 小实例。能够当模板
ant+junit的简易教程