Hibernate 一對一關係對映

2021-08-18 09:16:17 字數 970 閱讀 7278

一對一關係對映:比如中國公民和身份證,乙個人對應一張身份證,一張身份證也是對應乙個人

person類:

public class person catch (exception e)

e.printstacktrace();

}finally }}

idcard配置為:

表示主鍵由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"

;query query = session.createquery(hql);

listpersonlist = query.list();

hibernate查詢時,會先查詢乙個person表,再根據person的id去查詢idcard表

一對一關係

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...