一對一單向外鍵關聯
Annotation: @OneToOne
因爲Hibernate自動生成的名稱不能改,所以最好是自己把表建好然後設置好對應的映射關係
使用@JoinColumn指定對應映射的數據庫中的列名
一對一雙向外鍵關聯
Annotation: @OnetoOne(mappedBy)
不是真正的去建立一個雙向的外鍵,因爲這樣是冗餘字段
所以先使用一個OneToOne,然後在被關聯的添加這個註解,表明是一個映射關係
@Entity
public class Husband {
private int id;
private String name;
private Wife wife;
@Id
@GeneratedValue
public int getId() {
return id;
}
public String getName() {
return name;
}
@OneToOne
@JoinColumn(name="wifeId")
public Wife getWife() {
return wife;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setWife(Wife wife) {
this.wife = wife;
}
}
@Entity
public class Wife {
private int id;
private String name;
private Husband husband;
@OneToOne(mappedBy="wife")
public Husband getHusband() {
return husband;
}
public void setHusband(Husband husband) {
this.husband = husband;
}
@Id
@GeneratedValue
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}