WADER

          java,swt,hibernate,struts,xml,spring,ant,cvs,uml,db,server
          隨筆 - 15, 文章 - 0, 評論 - 0, 引用 - 0
          數(shù)據(jù)加載中……

          [Hibernate]使用XDoclet生成hbm.xml

          用XDoclet生成hbm.xml就是在.java文件里寫入一些元數(shù)據(jù),XDoclet會從這些數(shù)據(jù)以及類本身得到足夠的信息來生成目標(biāo)文件。當(dāng)然,除了用于hibernate,XDoclet還可以用于web、ejb等等很多用途。

          XDoclet要從sourceforge上下載,包含了很多jar包、文檔和例子,我覺得文檔做得還是不錯的,查起來比較方便。要使用XDoclet,一般要通過ant來完成,也就是在ant腳本里加入XDoclet的內(nèi)容。

          由于eclipse已經(jīng)包含了ant支持,因此我沒有專門去下載一個ant回來,而是直接使用eclipse帶的,版本是1.5.3。

          創(chuàng)建一個名為build.xml的腳本(其實應(yīng)該換個名,比如gen-hbm.xml,看起來比較明白),內(nèi)容如下:

          <?xml version="1.0" encoding="ISO-8859-1"?>

          <project name="XDoclet Examples" default="hibernate" basedir=".">
              <property name="xdoclet.root.dir" value="c:/xdoclet-1.2.1"/>
              <property name="xdoclet.lib.dir" value="${xdoclet.root.dir}/lib"/>
              <path id="myclasspath">
                  <fileset dir="${xdoclet.lib.dir}">
                      <include name="*.jar"/>
                  </fileset>
              </path>
               <taskdef
                  name="hibernatedoclet"
                  classname="xdoclet.modules.hibernate.HibernateDocletTask"
                  classpathref="myclasspath"
                  />
              <target name="hibernate" description="Generate mapping documents">

                  <echo>+---------------------------------------------------+</echo>
                  <echo>|                                                   |</echo>
                  <echo>| R U N N I N G   H I B E R N A T E D O C L E T     |</echo>
                  <echo>|                                                   |</echo>
                  <echo>+---------------------------------------------------+</echo>

                  <hibernatedoclet
                      destdir="./src"
                      excludedtags="@version,@author,@todo,@see"
                      addedtags="@xdoclet-generated at ${TODAY},@copyright The XDoclet Team,@author XDoclet,@version ${version}"
                      force="false"
                      verbose="true">

                      <fileset dir="./src">
                          <include name="org/haree/struts/form/UserForm.java"/>
                      </fileset>

                      <hibernate version="2.0"/>

                  </hibernatedoclet>
              </target>
          </project>

          我曾經(jīng)卡住的一個地方就是在taskdef里的classpathref屬性。一開始我在eclipse的ant運行參數(shù)里設(shè)置了XDoclet相關(guān)的包,總是提示:

          Can't create a hibernate element under hibernatedoclet. Make sure the jar file containing the corresponding subtask class is on the classpath specified in the <taskdef> that defined {2}.

          后來如上設(shè)置了classpathref,即包含了XDoclet使用到的包,并將eclipse的ant里關(guān)于XDoclet的包都去掉,竟然就成功了。其實現(xiàn)在也不明白為什么會這樣。。。

          posted on 2005-11-23 15:09 wader 閱讀(762) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 安龙县| 泾源县| 伊吾县| 永善县| 延津县| 江城| 革吉县| 贡觉县| 绥德县| 榆林市| 鄂州市| 库伦旗| 甘肃省| 庆云县| 微博| 五华县| 昌乐县| 伊宁市| 小金县| 四平市| 清涧县| 印江| 伊川县| 五峰| 万荣县| 常宁市| 洛南县| 吉木乃县| 新昌县| 神农架林区| 太仓市| 化州市| 永胜县| 墨玉县| 南木林县| 武定县| 安陆市| 衡水市| 大理市| 青阳县| 瑞安市|