一对一单向外键关联
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;
}
}