Hibernate關聯映射2
單向一對多關聯:
由“一”
的一端加載“多”
的一端,關系由“一”的一端來維護
在JavaBean中是在“一”的一端中持有“多”的一端的集合
Hibernate把這種關系反映到數據庫的策略是在“多”的一端的表上加一個外鍵指向“一”的一端的表
在“一”的一端維護關系是不提倡的
將“多”的一端的外鍵添加非空約束,導致數據不能插入
插入數據效率降低
public
class Street implements java.io.Serializable
{
//街道
Long id;
Long district_id;
String name;
/**
*/
Street(){
}
//
Long
getDistrict_id(){
return
district_id;
setDistrict_id(Long
district_id)
{
this.district_id
=
district_id;
}
public
class District implements java.io.Serializable
{
//區
Long id;
String name;
Set streets = new HashSet();
/**
*/
District(){
}
//
Set
getStreets(){
return
}
streets)
{
this.streets
=
streets;
}
}
<hibernate-mapping>
table="district">
<id name="id" type="
<column name="id" />
<generator class="native" />
</id>
<property name="name" type="
<column name="name" length="50" not-null="true" />
</property>
<set
name="streets" table="street“>
<key>
<column name="
</key>
<one-to-many class="
/><!-- 設置關系的對象 -->
</set>
</class>
</hibernate-mapping>
set元素的常用屬性:
屬性 | 含義和作用 | 必須 | 默認值 |
name | 映射類屬性的名稱 | Y | |
table | 關聯類的目標數據庫表 | N | |
lazy | 指定關聯對象是否使用延遲加載以及延遲加載的策略 | N | proxy |
fetch | 設置抓取數據的策略 | N | select |