生成方案以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
分享到:
相关推荐
利用hibernate-Tools里的相关工具类,使得java实体类(POJO)、hbm映射文件、数据库表(Schema)之间可以相互转化。也就是说,只要有其中一样,就可以通过各种途径得到其它两样。如果手里已经有了其中一样东西,要想...
2. **Hibernate Tools**:作为Hibernate的一部分,它提供了与IDE集成的插件,如Eclipse和IntelliJ IDEA,帮助开发者生成和维护Hibernate相关的代码,比如实体类、映射文件、DAO层代码等。 3. **源码获取**:从描述...
1. **代码生成器**:能够自动生成基于Hibernate的实体类、DAO层和配置文件,减少了手动编写大量重复代码的工作量,提高了开发效率。 2. **逆向工程**:可以从现有的数据库中生成Hibernate映射文件和Java类,使已有的...
《Hibernatetools_Reference_Guide》是一份由JBoss官方提供的详细文档,旨在指导开发者如何使用Hibernate Tools来自动生成与Hibernate框架相关的Java代码。该文档版本为3.0.0.CR1,覆盖了从安装配置到具体使用的各个...
HibernateTools可以基于数据库表结构生成相应的Java实体类,这些类包含了字段和getter/setter方法,使得开发者能够方便地操作数据。此外,它还能根据需求生成一些额外的方法,如`toString()`、`equals()`和`hashCode...
1. **数据库反向工程**:hibernateTools3.3可以将现有的数据库表结构转换为Hibernate的实体类和映射文件,大大减少了手动编写这些代码的工作量。 2. **实体类和映射文件生成**:根据已有的Java类,工具可以自动生成...
### hibernatetools文档知识点概述 #### 一、引言 **Hibernate Tools**是一款针对Hibernate框架提供的增强工具集,旨在简化开发流程并提高开发效率。该工具集提供了丰富的功能来辅助开发人员进行代码生成、数据库...
在Eclipse中整合Struts和Hibernate,首先需要安装相关的插件,如Struts2 Plugin和Hibernate Tools,这些插件提供了便捷的代码生成和配置辅助功能。 以下是创建Struts+Hibernate入门实例的基本步骤: 1. **创建项目...
3. **Ant**:除了在Eclipse中使用外,还可以通过Ant脚本来执行hibernatetools的任务,这对于构建过程非常有用。 #### 四、代码生成架构 - **Hibernate Meta Model**:用于描述数据库模式和Java实体类之间的映射...
开发者可以在ANT构建过程中调用相关的Hibernate Tools任务,如生成代码、生成DDL等,将这些操作集成到整个项目的构建流程中。 7. **版本兼容性**: 版本号3.3.1表明该工具集适用于较早的Hibernate和IDE版本。虽然...
Hibernate 提供了一套工具,可以自动生成基于数据库模式的Java实体类、Hibernate配置文件(`hibernate.cfg.xml`)以及持久化映射文件(`.hbm.xml`)。这些工具帮助开发者快速搭建项目,减少了手动编写重复代码的...
通过WTP,可以在Eclipse中创建Web项目,并利用Hibernate Tools来生成持久层代码。 - **Ant**:除了Eclipse IDE之外,Hibernate Tools也支持Ant脚本,这意味着开发者可以在构建过程中自动化地执行Hibernate Tools的...
XDoclet是基于Javadoc的元数据处理工具,它通过读取Java源代码中的特定注解,自动生成各种配置文件,包括Hibernate的.hbm.xml映射文件、EJB组件的部署描述符等。使用XDoclet,开发者无需手动创建和维护这些配置文件...
-- 配置HibernateTools包的路径 --> <path id="hibernate-tools.path"> ${lib.dir}/hibernate-tools-3.2.4.ga.jar"/> <!-- 配置FreeMarker包的路径 --> ${lib.dir}/freemarker.jar"/> ...
然后,将 hibernate2.1.8 下的 hibernate2.jar 及 lib 目录下的 jar 文件、hibernate-extensions 下的 hibernate-tools.jar 及 lib 目录下的 jar 文件、xdoclet-bin-1.2.3 下的 jar 文件全部拷贝到 middlegen- ...