posts - 54,  comments - 1,  trackbacks - 0

          對于對象的繼承關(guān)系, 建議“每一棵類繼承樹對應(yīng)一個表”,即對每一個子類都進(jìn)行使用<subclass>聲明。 例如:

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

          則新建一個表格來對應(yīng)這個繼承類數(shù):

          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,則表示該筆數(shù)據(jù)是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 閱讀(393) 評論(0)  編輯  收藏 所屬分類: 開發(fā)手記開源項目

          蜀中人氏,躬耕于珠海

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

          常用鏈接

          留言簿(2)

          隨筆分類(71)

          隨筆檔案(54)

          博客

          文檔

          站點

          論壇

          搜索

          •  

          積分與排名

          • 積分 - 51266
          • 排名 - 974

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 平乐县| 湘阴县| 文昌市| 商都县| 三都| 公主岭市| 靖州| 土默特左旗| 大名县| 凌云县| 正定县| 江门市| 竹溪县| 富顺县| 谢通门县| 灵武市| 盐津县| 合江县| 会同县| 永安市| 崇礼县| 湟中县| 醴陵市| 永吉县| 岑巩县| 宜黄县| 福州市| 托里县| 德安县| 库车县| 云和县| 永昌县| 天峨县| 桃园县| 五河县| 通许县| 淳化县| 中西区| 广宗县| 铁岭县| 南汇区|