More Related Content
Similar to 11 hibernate 组件映射
Similar to 11 hibernate 组件映射 (20)
11 hibernate 组件映射
- 2. 组件( Component )的概念
Component :这个概念在 Hibernate 中为在
几处不同的地方为了不同的目的而被重复使用的
组件。
Component 是一个被包含的对象,它作为值类
型被持久化,而非一个被引用的实体。
“Component( 组件 )” 这一术语指的是面向对
象的合成概念。
Component 是某个实体的逻辑组成部分
www.sodi.com.cn
- 3. 组件映射示例
定义描述雇员和客户的表
表结构:
Employee( 表 )
empId empName email address postCode telephone
------------------------------------------------------------------------------------------
E001 张三 zhangs@163.com 苏州新区 215002
0512-32645879
E002 李四 lisi@163.com 苏州沧浪区 215005
13587945685
E003 王五 wangw@163.com 苏州平江区 215001
13954687952
…… Customer( 表 )
custId custName email address postCode telephone
------------------------------------------------------------------------------------------
C001 张明 zhangm@163.com 苏州新区 215002
0512-32645879
C002 李芳 lifang@163.com 上海 210000
021-85687943
C003 刘钟 liuz@sina.com 北京 102536
010-88526345
……
www.sodi.com.cn
- 4. 组件映射示例
对象模型:
Contact( 类 )
email:String
address: String
postCode:String
telephone:String
Employee( 类 ) Customer( 类 )
empId: String custId: int
empName:String custName: String
contact: Contact contact: Contact
www.sodi.com.cn
- 5. 组件映射 -- 映射文件
Employee.hbm.xml:
<hibernate-mapping package="com.sodi.entity">
<class name="Employee" table="tab_employee">
<id name="empId" column="empid">
<generator class="assigned" />
</id>
<property name="empName" column="empname"/>
<!-- 组件映射 -->
<component name="contact">
<property name="email" column="email"/>
<property name="address" column="address"/>
<property name="postCode" column="postCode"/>
<property name="telephone" column="telephone"/>
</component>
</class>
</hibernate-mapping>
www.sodi.com.cn
- 6. 组件映射 -- 映射文件
Customer.hbm.xml:
<hibernate-mapping package="com.sodi.entity">
<class name=“Customer" table="tab_customer">
<id name=“custId" column=“custid">
<generator class="assigned" />
</id>
<property name=“custName" column=“custname"/>
<!-- 组件映射 -->
<component name="contact">
<property name="email" column="email"/>
<property name="address" column="address"/>
<property name="postCode" column="postCode"/>
<property name="telephone" column="telephone"/>
</component>
<property name="companyName" column="companyname"/>
</class>
</hibernate-mapping>
www.sodi.com.cn
- 7. 操作演示
操作演示
www.sodi.com.cn