Hibernate映射文件深入剖析
创始人
2024-06-08 07:31:37
0

Hibernate映射文件还是比较常用的,于是我研究了一下Hibernate映射文件,在这里拿出来和大家分享一下,希望对大家有用。

实际上,hbm2java被设计成用来把Hibernate映射文件转化成一组相应的Java类。如果你想在实际的应用程序中使用这种方法,很显然,对于所有的Hibernate映射文件一次性生成类会更为方便。***的方法是把类生成结合进你的自动化构建过程中。结合进Ant构建过程中使用Ant调用hbm2java是相当直接的。首先,你需要申明hbm2java任务(task)以便Ant可以调用它:

  1. classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask" 
  2. classpathref="project.class.path"/> 

接着,你要用到这个任务。例如,通过写一个目标(target)将源目录中的所有*.hbm.xml文件生成源代码。假设${src.Hibernate}表示含有Hibernate映射文件的目录,${src.generated}就是你想放源代码的地方。这样Ant任务看起来就象是:

  1. description="Generate Java source code  
  2. from the Hibernate mapping files"> 

Maven 1定制构建过程

为结合进Maven 1构建过程,你需要修改maven.xml文件。Maven代码就存放在这个文件中。脚本(script)主要检查了Hibernate映射文件自上次类生成后是否已被更改(使用uptodate 标记),如果没有,就调用此前所描述的Ant中的hbm2java任务。这种情况下,我们做了以下的假设:
◆hbm2java.xml配置文件应在src/Hibernate目录中
◆Hibernate映射文件应在src/Hibernate目录中
◆在src/generated/src/java目录下生成Java类

  1. targetfile="${maven.src.dir}/generated/hbm.jar"> 
  2. value="${hibernateBuild.uptodate}"/> 
  3. classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask" 
  4. classpathref="maven.dependency.classpath"/> 
  5. output="${maven.src.dir}/generated/src/java" > 

Maven 2定制构建过程

若碰巧你正使用Maven 2,事情就更简单一点了。把maven-antrun-plugin插件添加到pom.xml文件中,而不是在maven.xml文件中使用完整的 goals属性(pre and post goals)。在此插件中的task那部分,你可以象上述那样直接调用Ant 任务。

  1. maven-antrun-plugin  
  2. generate-sources  
  3. classname="org.hibernate.tool.ant.HibernateToolTask" 
  4. classpathref="maven.dependency.classpath"/> 
  5. run 

在Hibernate 3中使用hbm2java

Hbm2java 工具已经经受了Hibernate 3 的考验。hbm2java任务与其它相似的任务一起,被集成进了新版Hibernate 工具集中的Hibernatetool任务(撰写此文时仍是alpha版)。Ant任务需要在类路径(class path)中查找以下的.jar 文件:
◆Hibernate-tools.jar
◆velocity-1.4.jar
◆velocity-tools-generic-1.4.jar
◆jtidy-r8-21122004.jar
◆Hibernate3.jar
◆JDBC drivers

这样一来,Ant任务就要作如下申明:

  1. classname="org.hibernate.tool.ant.HibernateToolTask" 
  2. classpathref="maven.dependency.classpath"/> 

***,你在Hibernatetool 任务中调用hbm2java任务,做法如下

  1. classname="org.hibernate.tool.ant.HibernateToolTask" 
  2. classpathref="maven.dependency.classpath"/> 

【编辑推荐】

  1. Hibernate对数据索引进行缓存
  2. 剖析Hibernate主键生成几种常用方式
  3. 浅析Hibernate实现实体对象延迟加载
  4. Hibernate集合类型的延迟加载特性
  5. 概括Hibernate属性延迟加载

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...