hibernate系列之四

2022-09-11 07:39:12 字數 2368 閱讀 7417

資料庫中表之間的關係:

一對一、一對多、多對多

一對多的建表原則:在多的一方建立外來鍵指向一的一方的主鍵;

多對多的建表原則:建立乙個中間表,中間表中至少有兩個字段作為外來鍵分別指向多對多雙方的主鍵;

一對一建表原則:唯一外來鍵對應:假設一對一中的任意一方為多,在多的一方建立外來鍵指向一的一方的主鍵,將外來鍵設定為唯一

主鍵對應:一方的主鍵作為另一方的主鍵;

在hibernate中採用j**a物件關係描述資料表之間的關係:

一對多的對映關係的實現案例:

客戶實體類:在hibernate系列一中已經實現點選連線檢視:

同時在客戶實體類中新增屬性:

//乙個客戶對應多個聯絡人

private setlinkmans = new hashset();

public setgetlinkmans()

public void setlinkmans(setlinkmans)

實現聯絡人實體類linkman:

package com.itwx.hibernate.pojo;

public class linkman

public void setlkm_id(long lkm_id)

public string getlkm_name()

public void setlkm_name(string lkm_name)

public string getlkm_gender()

public void setlkm_gender(string lkm_gender)

public string getlkm_phone()

public void setlkm_phone(string lkm_phone)

public string getlkm_mobile()

public void setlkm_mobile(string lkm_mobile)

public string getlkm_email()

public void setlkm_email(string lkm_email)

public string getlkm_qq()

public void setlkm_qq(string lkm_qq)

public string getlkm_position()

public void setlkm_position(string lkm_position)

public string getlkm_memo()

public void setlkm_memo(string lkm_memo)

public customer getcustomer()

public void setcustomer(customer customer)

}

配置linkman.hbm.xml的對映檔案

<?xml version="1.0" encoding="utf-8"?>

核心配置檔案hibernate.cfg.xml

customer.hbm.xml配置檔案新增一對多的關係對映配置

測試類中進行測試一對多的關係對映

@test

public void test4()

級聯操作:

指在主控方執行儲存、更新和刪除操作時,其關聯(被控方)也執行相同操作。在對映檔案中通過對cascade屬性的設定來控制是否對關聯物件採用級聯操作,級聯操作對各種關聯關係都是有效的;

級聯具有方向性:在儲存一的一方級聯多的一方和在多的一方可以級聯一的一方;

在對映檔案中配置cascade=「s**e-update」;

級聯刪除和級聯儲存、更新:誰是主控方,則可以在對映檔案中配置cascade=「delete、s**e-update」,也可以同時配置;

級聯刪除:在set標籤中配置cascade=「delete」或者在mony-to-one中配置cascade屬性;

或者

防止sql語句冗餘:雙向維護關係,持久態物件可以自動更新資料庫,更新客戶的時候會修改一次外來鍵,更新聯絡人的時候會修改一次外來鍵,所以會產生sql語句冗餘;

解決方案:一方放棄外來鍵的維護,通常交給多的一方去維護,所以一的一方就需要放棄維護,即需要配置inverse=「true」;

Hibernate系列之 1 抓取策略

在 customer.hbm.xml 配置檔案中 set集合上的屬性 fetch lazy fetch 決定傳送的sql語句的型別 lazy 控制關聯物件的檢索是否採用延遲.就即決定多的一方orders是否延遲載入 注意 class 上的 lazy 屬性決定一方customer是否支援延遲載入 fe...

ACD系列翻譯之四

8.performance compatibility 圖表略。security model compatibility 裝置必須實現乙個與sdk文件的securityand permissions 9.1 permission 裝置必須支援sdk文件中的許可權模型中規定的所有許可權,並且不能刪除 ...

《xhtml入門系列》之四

1 在乙個頁面中的基本布局元素為 2 如果用css將乙個頁面分為上中下,而中又分為左右 3 如何將多個小控制項排成一排?其實很簡單,比如現在有5個按鈕,要將這些按鈕排成一排,只要作如下處理就可以了 其實就是將每個控制項的float都設定為left就可以了 4 如果不想讓這些東西都排成一排,怎麼辦?那...