一對一關係對映

2021-08-09 11:30:44 字數 2718 閱讀 6091

主鍵關聯

兩個關聯的實體在表中具有相同的主鍵值,這個主鍵可只由其中乙個表生成,在另外乙個表中通過對映檔案中使用主鍵的foreign生成機制引用已經生成的主鍵值。

student類

public class student

public void setcard(card card)

public student() {}

public student(long studentno, string studentname, int sage, string major)

public long getid()

public void setid(long id)

public long getstudentno()

public void setstudentno(long studentno)

public string getstudentname()

public void setstudentname(string studentname)

public int getsage()

public void setsage(int sage)

public string getmajor()

public void setmajor(string major) }

student.hbm.xml

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

public class card

public void setstudent(student student)

public card()

public card(string cardno, string major, double balance)

public long getid()

public void setid(long id)

public string getcardno()

public void setcardno(string cardno)

public string getmajor()

public void setmajor(string major)

public double getbalance()

public void setbalance(double balance)

}card.hbm.xml

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

student

測試import org.hibernate.transaction;

import org.hibernate.session;

import util.hibernateutil;

public class onetooneprimarykeyassociation

}結果

外來鍵關聯

一對一的外來鍵關聯是指兩個實體各自有自己的主鍵,但其中乙個實體用外來鍵引用另外乙個實體。例如,student實體和card實體各自對應表的主鍵都是id,設在card表中還有乙個studentid屬性,它引用student表的id列,在card表中studentid就是外來鍵。

若仍建立雙向關聯,則student.hbm.xml無須修改,修改後的card.hbm.xml如下:

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

student

column="studentid" unique="true" />

上面card類的基礎上再加入studentid屬性及setter、getter方法和新建構函式

/*一對一外來鍵關聯	*/

private student studentid;

public student getstudentid()

public void setstudentid(student studentid)

public card(string cardno, string major, double balance,

student studentid)

將上面測試類中

card card = new card("110101","電子商務",1500.00);
改為

card card = new card("110101","電子商務",1500.00,student);
執行結果

一對一關係對映

兩端都需要配置 onetoone,但需要對映外來鍵維護關係的一端,額外新增 joincolumn 屬性。含有主鍵的一方預設是立即載入機制,但可以通過fetch 屬性調整,但是沒有主鍵的一端,無論如何更改fetch,都是立即載入,會額外傳送一條查詢語句。原因是,含有外來鍵的一方可以根據外來鍵判斷是否為...

Mybatis 一對一關係對映

一對一關係 使用人和身份證為例 實體類 person端 用這一端來維護關係 private integer id private string name private integer cid private card card 生成對應的set,get方法 card端 private intege...

Hibernate 一對一關係對映

一對一關係對映 比如中國公民和身份證,乙個人對應一張身份證,一張身份證也是對應乙個人 person類 public class person catch exception e e.printstacktrace finally idcard配置為 表示主鍵由hibernate選擇主鍵的生成方式,由...