(hibernate映射总结详解,第一篇文章有映射关系树的描述,这里不再重复)
Ⅱ. 映射实体关联关系 --- 一对多关联关系
---
一对多双向关联映射:
当类与类之间建立了关联,就可以方便地从一个类对象导航到另一个与它关联的类对象。例如order对象,如果想获得与它关联的customer对象,只要调用
Coustomer customer = order.getCustomer();
就可以OK了。要实现这样的操作要求必须建立从customer到order的一对多双向关联。这是,在customer中orders必须以集合的形式出现,在Customer的持久化类中,我们这样写:
private set orders = new HashSet();
public set getOrders(){
return orders;
}
public void setOrders(Set orders){
this.orders = orders;
}
在customer的映射文件中我们这样映射:
<set name=
“orders”>
<key column=
“customer_id”/>
<one-to-many class=
“mypack.Order”/>
</set>
<set>
元素包括以下属性:
name:
设定正在映射的持久化类的属性名,这里为orders
<set>
元素还包含<key>元素和<one-to-many>元素。
<one-to-many>
:元素定义此属性对应的持久化类。
<key>
:元素定义了此属性与所关联的持久化类mypack.order对应的表的外键。
注意:没有column属性。<one-to-many>表明,在orders中存放一组order对象。在customer表中没有order字段。
总结:实体一对多双向关联(与多对一双向关联同意),在<one>方用<set>映射。<one>中有<key>和<one-to-many>。