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 阅读(376) 评论(0)  编辑  收藏 所属分类: 开发手记开源项目

只有注册用户登录后才能发表评论。


网站导航:
 

蜀中人氏,躬耕于珠海

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

常用链接

留言簿(2)

随笔分类(71)

随笔档案(54)

博客

文档

站点

论坛

搜索

  •  

积分与排名

  • 积分 - 50299
  • 排名 - 981

最新评论

阅读排行榜