posts - 54,  comments - 1,  trackbacks - 0
组件(Component)映射多用来表示对象的从属关系(组合,聚合).比如一个学生可能有姓名,年龄,性别,成绩等属性,其中成绩是另一个对象,又有科目,分数属性,这里就需要用组件映射来表是之间的关系.

Java代码:
// 学生
class Student{
  
private
 String name;
  
private int
 age;
  
private
 String sex;
  
private
 Grade grade;

}

// 成绩
class Grade{
  
private
 String subject;
  
private float
 score;

}

数据库:

-- 学生表
create table STUDENT ( 
    ID 
char(32not null

    NAME 
varchar(16not null

    SEX 
char(1
), 
    AGE 
integer

    
primary key
 (ID) 
);

-- 成绩表

create table GRADE ( 
    ID 
char(32not null

    student_id 
char(32not null

    SUBJECT 
varchar(10
), 
    SCORE 
float

    
primary key
 (ID),
    
foreign key
 (student_id) 
);

Hibernate映射文件:
<?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="Student" table="STUDENT">
 

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

        
<property name="name" type="string" not-null="true">
 
            
<column name="NAME" length="16" not-null="true"/>
 
        
</property>
 
        
<property name="sex" type="char" column="SEX"/>
 
        
<property name="age" type="int" column="AGE"/>
 
        
        
<component name="grade" class="Grade">
 
            
<property name="subject" type="string" column="SUBJECT" not-null="true"/>
 
            
<property name="score" type="float" column="SCORE" not-null="true"/>
 
        
</component>
 

    
</class>
 
</hibernate-mapping>
posted on 2005-12-22 18:46 ZhuJun 阅读(773) 评论(0)  编辑  收藏 所属分类: 开发手记开源项目

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


网站导航:
 

蜀中人氏,躬耕于珠海

<2005年12月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

常用链接

留言簿(2)

随笔分类(71)

随笔档案(54)

博客

文档

站点

论坛

搜索

  •  

积分与排名

  • 积分 - 50299
  • 排名 - 981

最新评论

阅读排行榜