6. 現在要設定 XDoclet 了, 首先在 tutorial 項目中 src/META-INF 的資料夾裏新增一個 jboss-service-custom.xdt 檔案, 內容如下:
<depends>jboss.jca:service=LocalTxCM,name=MySqlDS</depends>
<attribute name=CacheProvider>net.sf.hibernate.cache.TreeCacheProvider</attribute>
然後右擊 tutorial project, 選 ‘Properties’, 再選 ‘XDoclet Configurations’, 在右上方的視窗右擊選 ‘Add Standard’, 選 ‘Standard Hibernate’ 按 ‘OK’, ‘Standard Hibernate’ 可改名為 ‘Hibernate’ 再按 ‘OK’. 點擊這個 ‘Hibernate’, 在右下方的視窗點擊 ‘hibernatedoclet’, 在右邊的視窗已可看到預設的資料, 我們選 ‘mergeDir’, 填入 ‘src/META-INF’, 如下圖:

Standard 的 hibernatedoclet 已有 ‘fileset’ 和 ‘hibernate’ 的屬性, 點擊 ‘hibernate’, 在右方視窗選 ‘version’ 填入 ‘2.0’. 再右擊 ‘hibernatedoclet’ 選 ‘Add’ -> ‘fileset’, 選 ‘dir’ 填入 ‘src/tutorial/hibernate’, 選 ‘include’ 填入 ‘**/*.hbm.xml’. 再右擊 ‘hibernatedoclet’ 選 ‘Add’ -> ‘jbossservice’, 選 ‘dataSource’ 填入 ‘java:/MySqlDS’ (根據步驟 1 在 JBoss 設定的 DataSource), 選 ‘destDir’ 填入 ‘src/META-INF’, 選 ‘dialect’ 填入 ‘net.sf.hibernate.dialect.MySQLDialect’, 選 ‘jndiName’ 填入 ‘java:/hibernate/HibernateFactory’, 選 ‘serviceName’ 填入 ‘Hibernate’, 選 ‘showSql’ 填入 ‘false’, 選 ‘transactionManagerStrategy’ 填入 ‘net.sf.hibernate.transaction.JBossTransactionManagerLookup’, 選 ‘transactionStrategy’ 填入 ‘net.sf.hibernate.transaction.JTATransactionFactory’, 選 ‘useOuterJoin’ 填入 ‘false’, 選 ‘userTransactionName’ 填入 ‘UserTransaction’, 按 ‘OK’, 如下圖:

XDoclet 設定終於完成了, 現在可以運行了. 右擊 tutorial 的項目選 ‘Run XDoclet’, 之後在 tutorial.hibernate 的包裏會新增一個 ‘Num.hbm.xml’ 檔案, 在 src/META-INF 裏會新增一個 ‘jboss-service.xml’, 如圖
<?xml version=1.0 encoding=UTF-8?>
<!DOCTYPE server>
<!-- Generated file - Do not edit! -->
<server>
<mbean code=net.sf.hibernate.jmx.HibernateService name=jboss.jca:service=Hibernate>
<depends>jboss.jca:service=RARDeployer</depends>
<attribute name=MapResources>tutorial/hibernate/Num.hbm.xml</attribute>
<attribute name=JndiName>java:/hibernate/HibernateFactory</attribute>
<attribute name=Datasource>java:/MySqlDS</attribute>
<attribute name=Dialect>net.sf.hibernate.dialect.MySQLDialect</attribute>
<attribute name=UseOuterJoin>false</attribute>
<attribute name=ShowSql>false</attribute>






