package com.hibernate.rqq;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
@Entity
public class Husband {
privateint id;
privateString name;
privateWife wife;
@Id
@GeneratedValue
publicint getId() {
returnid;
}
publicString getName() {
returnname;
}
@OneToOne
@JoinColumn(name="wifeid")
publicWife getWife() {
returnwife;
}
publicvoid setWife(Wife wife) {
this.wife= wife;
}
publicvoid setId(int id) {
this.id= id;
}
publicvoid setName(String name) {
this.name= name;
}
}
package com.hibernate.rqq;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
@Entity
public class Wife {
privateint id;
privateString name;
privateHusband husband;
@Id
@GeneratedValue
publicint getId() {
returnid;
}
publicString getName() {
returnname;
}
@OneToOne(mappedBy="wife")
/*
* 关联关系由对方(与当前类关联的Husband)中的wife属性主导,
* 双向关系必须设置,否则数据库的两张表中都会生成外键,
* 对方主导的意思就是只在对方类映射的数据库表husband中生成外键
*/
publicHusband getHusband() {
returnhusband;
}
publicvoid setId(int id) {
this.id= id;
}
publicvoid setName(String name) {
this.name= name;
}
publicvoid setHusband(Husband husband) {
this.husband= husband;
}
}