建立实体域对象。丈夫和妻子
package org.yyf.hibernateexample.domain.onetoone.twoway;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;
/**
*
* @author yeyf
* @date 2013年12月12日
*/
@Entity
@Table(name="twoway_husband")
public class Husband {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE)
private Long ID;
@Column(name="name")//如果属性名就是列名就省略了
private String name;
private Integer age;
@OneToOne
@JoinColumn(name="wife_id")
private Wife wife;
public Wife getWife() {
return wife;
}
public void setWife(Wife wife) {
this.wife = wife;
}
public Long getID() {
return ID;
}
public void setID(Long iD) {
ID = iD;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
package org.yyf.hibernateexample.domain.onetoone.twoway;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.Table;
/**
*
*@author yeyf
*@date 2013年12月12日
*/
@Entity
@Table(name="twoway_wife")
public class Wife {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long ID;
private String name;
private Integer age;
@OneToOne(mappedBy="wife")
private Husband husband;
public Husband getHusband() {
return husband;
}
public void setHusband(Husband husband) {
this.husband = husband;
}
public Long getID() {
return ID;
}
public void setID(Long iD) {
ID = iD;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
这里第一个值得说道的就是注解是用jpa的还是hibernate的。
hibernate有一套自己的注释,可以很方便的实现 ORM。但是sun公司为了统一ORM规范,把hibernate的作者Gavin King挖过去又做了一套ORM框架叫JPA,并按照惯有套路定义了一套接口,宣称我这个才是规范(= =)这样JPA后来居上成为了ORM的标准实现。所以JPA的注释完全兼容Hibernate。所以除非要使用到Hibernate中的某些特殊功能,否则定义的