資料庫中表之間的關係:
一對一、一對多、多對多
一對多的建表原則:在多的一方建立外來鍵指向一的一方的主鍵;
多對多的建表原則:建立乙個中間表,中間表中至少有兩個字段作為外來鍵分別指向多對多雙方的主鍵;
一對一建表原則:唯一外來鍵對應:假設一對一中的任意一方為多,在多的一方建立外來鍵指向一的一方的主鍵,將外來鍵設定為唯一
主鍵對應:一方的主鍵作為另一方的主鍵;
在hibernate中採用j**a物件關係描述資料表之間的關係:
一對多的對映關係的實現案例:
客戶實體類:在hibernate系列一中已經實現點選連線檢視:
同時在客戶實體類中新增屬性:
//乙個客戶對應多個聯絡人實現聯絡人實體類linkman:private setlinkmans = new hashset();
public setgetlinkmans()
public void setlinkmans(setlinkmans)
package com.itwx.hibernate.pojo;配置linkman.hbm.xml的對映檔案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)
}
<?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 如果不想讓這些東西都排成一排,怎麼辦?那...