一對一關係對映:比如中國公民和身份證,乙個人對應一張身份證,一張身份證也是對應乙個人
person類:
public class person catch (exception e)idcard配置為:e.printstacktrace();
}finally }}
表示主鍵由hibernate選擇主鍵的生成方式,由資料庫決定;如果此時person表和idcard表之間建立了外來鍵約束,那麼就不能手動設定idcasd的id值,id值對應的身份證記錄必須真實存在(hibernate就是判斷此idcard物件必須為持久化狀態),否則儲存person的時候會報錯;
hibernate會產生這樣兩條語句:就是先儲存idcard得到id值,再儲存person
如果你沒有建立外來鍵約束,手動設定idcasd的id值就沒有問題,那麼儲存person時,person的id值就直接取你手動設定的這個值,不會再先儲存idcard取id,會產生如下一條sql:
當你從資料庫查詢乙個person物件時,關聯的idcard物件也會同時查詢出來:
string hql = "from person"hibernate查詢時,會先查詢乙個person表,再根據person的id去查詢idcard表;query query = session.createquery(hql);
listpersonlist = query.list();
一對一關係
1 共享主鍵方式 共享主鍵方式就是限制兩個資料表的主鍵使用相同的值,通過主鍵形成一對一的對映關係。如 學員的登入帳號資訊和學員的詳細分別存放到兩張不同的表中。表 持久化類 public class student public class stupwd student.hbm.xml cascade...
Hibernate一對一關係操作物件
hibernate一對一關係操作物件 總的來說有四種方式,我將意義的在本片文章中介紹 一 以主鍵關聯 概念 關聯的兩個實體共享乙個主鍵 例如我們建立兩個表,分別為user id pk,name,password userinfor id pk,email,age,address user和useri...
一對一關係對映
主鍵關聯 兩個關聯的實體在表中具有相同的主鍵值,這個主鍵可只由其中乙個表生成,在另外乙個表中通過對映檔案中使用主鍵的foreign生成機制引用已經生成的主鍵值。student類 public class student public void setcard card card public stu...