随笔 - 0, 文章 - 75, 评论 - 0, 引用 - 0
数据加载中……

Hibernate关联映射2


单向一对多关联:


由“一”
的一端加载“多”
的一端,关系由“一”的一端来维护
在JavaBean中是在“一”的一端中持有“多”的一端的集合
Hibernate把这种关系反映到数据库的策略是在“多”的一端的表上加一个外键指向“一”的一端的表
在“一”的一端维护关系是不提倡的
将“多”的一端的外键添加非空约束,导致数据不能插入
插入数据效率降低


反过来看,一个区可以有多个街道


public
class Street implements
java.io.Serializable
{
//街道


private
Long id;


private
Long
district_id;


private
String name;



/**
默认的构造方法
*
/


public
Street(){



}



//
省略部分setter/getter方法


public
Long
getDistrict_id(){



return
district_id;


}


public void
setDistrict_id(Long
district_id)
{



this.district_id
=
district_id;


}


}




public
class District implements
java.io.Serializable
{
//区


private
Long id;


private
String name;


private
Set streets = new
HashSet();



/**
默认的构造方法
*
/


public
District(){



}



//
省略部分setter/getter方法


public
Set
getStreets(){



return
this.streets;



}


public void setStreets(Set
streets)
{



this.streets
=
streets
;



}


}




<hibernate-mapping>


<class name="cn.jbit.houserent.bean.District"
table="
district">



<id name="id" type="
java.lang.Long">



<column name="id" />



<generator class="native" />



</id>



<property name="name" type="
java.lang.String">



<column name="name" length="50" not-null="true" />



</property>



<set
name="streets" table="street“>



<key>



<column name="
district_id"/><!-- 设置关系的字段 -->



</key>



<one-to-many class="
cn.jbit.houserent.bean.Street"
/><!-- 设置关系的对象 -->



</set>



</class>


</hibernate-mapping>




set元素的常用属性:



































属性


含义和作用


必须


默认值


name


映射类属性的名称


Y



table


关联类的目标数据库表


N



lazy


指定关联对象是否使用延迟加载以及延迟加载的策略


N


proxy


fetch


设置抓取数据的策略


N


select




同时配置两者就成了双向一对多关联

posted on 2012-04-22 15:49 hantai 阅读(55) 评论(0)  编辑  收藏


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


网站导航: