首先,了解什麼是一對一關系
例如人與身份證号,一個人隻能有一個身份證号,而一個身份證号隻能屬于一個人,這種關系就叫做一對一關系。
由此,我們用人和身份證号來設定一對一單向外鍵關聯,通過Person可以找到idCard,idCard卻找不到Person。
1、建立實體類Person并添加idCard引用
package cn.yinghuo.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import org.hibernate.annotations.GenericGenerator;
/**
* 單向外鍵關聯
* 主要方
*/
@Entity
public class Person {
public String pid;
public String pname;
public IdCard idCard;
@Id //主鍵
@GeneratedValue(generator="uuid") //指定一個生成器為uuid
@GenericGenerator(name = "uuid", strategy ="uuid") //建構一個生成器,生成政策strategy為手工指派
public String getPid() {
return pid;
}
public void setPid(String pid) {
this.pid = pid;
}
public String getPname() {
return pname;
}
public void setPname(String pname) {
this.pname = pname;
}
@OneToOne //全級聯的級聯關系
@JoinColumn(name="cid") //被控類對應的主鍵為cid
public IdCard getIdCard() {
return idCard;
}
public void setIdCard(IdCard idCard) {
this.idCard = idCard;
}
}
2、建立實體類idCard
package cn.yinghuo.model;
/**
* 單向外鍵關聯
* 被控方
*/
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import org.hibernate.annotations.GenericGenerator;
@Entity
public class IdCard {
public String cid;
public String cname;
@Id // 主鍵
@GeneratedValue(generator="uuid") //指定一個生成器為uuid
@GenericGenerator(name = "uuid", strategy ="uuid") //建構一個生成器,生成政策strategy為手工指派
public String getCid() {
return cid;
}
public void setCid(String cid) {
this.cid = cid;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
}
3、建立測試類
(注意:因為測試類中用了schemaExport()方法,會自動生成資料庫表不需要再重新建立)
package cn.yinghuo.action;
/**
* 測試類
*/
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
public class Main {
public static void main(String[] args) {
schemaExport();
}
// schemaExport()生成資料庫表
// 第一個true是在控制台列印出DDL,如果是false沒什麼影響隻是不再列印出DDL(資料庫定義語言)
// 第二個true是建立表,反之false則不建立
public static void schemaExport() {
new SchemaExport(new Configuration().configure()).create(true, true);
}
}
4、在XML中引入映射檔案
5、去資料庫中檢視(檢視模型更容易看出來這種關系)
