[学习]Hibernate 3.2 学习笔记之七

Hibernate关联映射

 

单向一对多(1-N)关联

 

适用场合:只从一的一方访问多的一方,不从多的一方访问一的一方。在设计对象模型时,多的一方中有一个多的一方的集合类型的属性;在映射文件中,一的一方要使用集合来映射这个属性。

 

映射集合属性

 

集合属性有两种:单纯的集合属性;Map结构的集合属性。Hibernate要求持久化集合值字段必须声明为接口类型,包括java.util.Set、java.util.Collection、java.util.List、java.util.Map、java.util.SortedSet、java.util.SortedMap等。用于映射集合属性的元素大致有list——映射List集合属性、set——映射Set集合属性、map——映射Map集合属性、array——映射数组集合属性、primitive-array——映射基本数据类型的数组、bag——映射无序集合、idbag——映射无序集合,但为集合增加逻辑次序几种。

这些元素的属性如下:

 

name:必选,映射的属性名称。

table:指定保存集合属性的表名,默认与属性名相同。

schema:指定保存集合属性数据表的Schema名,覆盖根元素的值。

lazy:是否启动延时加载,默认为true。

inverse:指定该集合属性作为双向关联关系中的另一端。

casecade:指定当操作持久化对象时是否让操作级联到子实体。

order-by:设置数据库对集合元素的排序,在内存中排序。

sort:指定集合排序的顺序。

where:指定任意的SQL语句中的where条件,在加载或删除时起作用。

batch-size:定义延时加载时每批抓取集合元素的数量,默认为1。

access:访问属性的策略,默认为property。

mutable:指定集合中的元素是否可变。

 

因为集合属性都需要保存到另一个数据表中,所以保存集合属性的数据表必须包含一个外键列,用于参照到主键列。在<set ... />、<list ... />等集合元素中使用<key ... />子元素来映射。

<key ... />元素可包含下列属性:

column:指定外键字段的列名。

on-delete:指定外键约束是否打开数据库级别的级联删除。

property-ref:指定外键引用的字段是否为原表的主键。

not-null:外键列是否具有非空约束。

update:外键列是否可以更新。

unique:外键是否具有唯一约束。

 

在在<set ... />、<list ... />等集合元素中使用<one-to-many ... />来映射一对多的关联关系。

class:必填,指定集合中实体的类型。

not-found:未找到外键引用的实体时,系统的处理方式,默认为exception。

 

例如:

部门和员工,一个部门中有多个员工。

 

对象模型:

 

映射文件:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值