posts - 54,  comments - 1,  trackbacks - 0

          對于對象的繼承關系, 建議“每一棵類繼承樹對應一個表”,即對每一個子類都進行使用<subclass>聲明。 例如:

          有一個基類: class User, 兩個子類: class Admin和 class Guest.

          則新建一個表格來對應這個繼承類數:

          create table USER ( 
              ID 
          char(32not null
              DISCRIMINATOR_USERTYPE 
          varchar(255not null
              NAME 
          varchar(16not null
              PASSWORD 
          varchar(16not null
              USER_LEVEL 
          integer
              POWER_OTHER 
          varchar(255), 
              GUEST_OTHER 
          varchar(255), 
              
          primary key (ID) 
          );

          其中字段DISCRIMINATOR_USERTYPE來記錄儲存的類別是屬于UserAdmin或是Guest的記錄,如果該字段是ParentUser,則表示該筆數據是User類別,如果是ADMIN,表示是Admin的記錄,如果是GUEST,表示是Guest的記錄.


          映像文件:

          <?xml version="1.0"?> 
          <!DOCTYPE hibernate-mapping 
              PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" 
              "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"
          > 

          <hibernate-mapping> 

              
          <class name="com.zj.User" table="USER" discriminator-value="ParentUser"> 

                  
          <id name="id" type="string" unsaved-value="null"> 
                      
          <column name="ID" sql-type="char(32)"/> 
                      
          <generator class="uuid.hex"/> 
                  
          </id> 

                  
          <discriminator column="DISCRIMINATOR_USERTYPE" type="string"/> 

                  
          <property name="name" type="string" not-null="true"> 
                      
          <column name="NAME" length="16" not-null="true"/> 
                  
          </property> 

                  
          <property name="password" type="string" not-null="true"> 
                      
          <column name="PASSWORD" length="16" not-null="true"/> 
                  
          </property> 

                  
          <subclass name="com.zj.Admin" discriminator-value="ADMIN"> 
                      
          <property name="level" type="integer" column="ADMIN_LEVEL"/> 

                      
          <property name="otherOfPower" type="string" column="POWER_OTHER"/> 
                   
          </subclass> 
                  
                   
          <subclass name="com.zj.Guest" discriminator-value="GUEST"> 
                      
          <property name="otherOfGuest" type="string" column="GUEST_OTHER"/> 
                   
          </subclass> 
              
          </class> 

          </hibernate-mapping>


          注意上面文件中,在映像子類別時,使用<subclass>指明映像的子類別以及其discriminator-value來指定.
          posted on 2005-09-11 00:21 ZhuJun 閱讀(388) 評論(0)  編輯  收藏 所屬分類: 開發手記開源項目

          蜀中人氏,躬耕于珠海

          <2005年9月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          常用鏈接

          留言簿(2)

          隨筆分類(71)

          隨筆檔案(54)

          博客

          文檔

          站點

          論壇

          搜索

          •  

          積分與排名

          • 積分 - 50989
          • 排名 - 977

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 汤阴县| 泰州市| 垫江县| 长泰县| 中山市| 三河市| 炎陵县| 漠河县| 迁安市| 遂川县| 广安市| 西华县| 望都县| 景德镇市| 望谟县| 鹿泉市| 沛县| 蕉岭县| 太康县| 合川市| 宁化县| 临桂县| 渝中区| 甘泉县| 日土县| 翼城县| 田东县| 东山县| 桦甸市| 吴堡县| 涿州市| 洛阳市| 安吉县| 栾川县| 稻城县| 华亭县| 泊头市| 嘉义县| 张家川| 张北县| 大同市|