您的位置:首页 > 其它

使用annotation配置hibernate(3):一对一关系配置

2014-07-09 14:50 393 查看
主键一对一

数据库表结构



Student.java

@Entity
@Table(name = "student")
public class Student {
@Id
@Column(name = "id")
@GenericGenerator(name = "generator",strategy = "native")
@GeneratedValue(generator = "generator")
private int id;

@Column(name = "name")
private String name;

@OneToOne(cascade=CascadeType.ALL)
@PrimaryKeyJoinColumn//这个注解只能写在生成ID的一端
private IDCard idCard;

}


IDCard.java

@Entity
@Table(name = "idcard")
public class IDCard {
@Id
@GenericGenerator(name = "fkgenerator",parameters = {@Parameter(name = "property",value = "student")}, strategy = "foreign")
@GeneratedValue(generator = "fkgenerator")
private int id;

@Column(name = "num")
private String num;

@OneToOne(cascade=CascadeType.ALL,mappedBy = "idCard")
private Student student;
}


外键一对一

数据库表结构



Student.java

@Entity
@Table(name = "student")
public class Student {
@Id
@Column(name = "id")
@GenericGenerator(name = "generator",strategy = "uuid")
@GeneratedValue(generator = "generator")
private String id;

@Column(name = "name")
private String name;

@OneToOne(cascade=CascadeType.ALL)
@JoinColumn(name = "idcard")
private IDCard idCard;
}


IDCard.java

@Entity
@Table(name = "idcard")
public class IDCard {
@Id
@Column(name = "id")
@GenericGenerator(name = "generator",strategy = "uuid")
@GeneratedValue(generator = "generator")
private String id;

@Column(name = "num")
private String num;

@OneToOne(mappedBy = "idCard")
private Student student;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐