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)

          博客

          文檔

          站點

          論壇

          搜索

          •  

          積分與排名

          • 積分 - 51009
          • 排名 - 976

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 普兰店市| 仪陇县| 喀喇| 墨竹工卡县| 石狮市| 山东省| 旌德县| 万盛区| 桂阳县| 雷山县| 昌邑市| 浙江省| 武汉市| 西吉县| 张掖市| 宜川县| 隆尧县| 白玉县| 商水县| 德江县| 许昌县| 济宁市| 阿拉善右旗| 泰宁县| 浪卡子县| 孝感市| 东宁县| 施秉县| 侯马市| 基隆市| 武夷山市| 措勤县| 公主岭市| 阳江市| 略阳县| 静宁县| 湟中县| 庄河市| 凤城市| 海安县| 兴化市|