Card类
@Entity
@Table(name="t_card")
public class Card {
**@Id
@GeneratedValue(generator="fk")//指定生成器的名字
@GenericGenerator(name="fk",//指定泛型生成器的名字,要和上面指定的生成器的名字相同
strategy="foreign",//指定泛型生成器的策略为外键策略
parameters={
@Parameter(value="citizen",//指定属性值,这个值对象中会自动生成id值,将这个id值作为当前成员变量的id值
name="property" //指定属性名,此时的属性名必须为property
)
}
)**
private int id;
private String name;
**@OneToOne
@PrimaryKeyJoinColumn**
private Citizen citizen;
public Card(String name) {
super();
this.name = name;
}
public Card() {
super();
// TODO Auto-generated constructor stub
}
public Citizen getCitizen() {
return citizen;
}
public void setCitizen(Citizen citizen) {
this.citizen = citizen;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Wife [name=" + name + "]";
}
}
Citizen 类
@Entity
@Table(name="t_citizen")
public class Citizen extends BaseEntity{
private String name;
@OneToOne(mappedBy="citizen")
private Card card;
public Card getCard() {
return card;
}
public void setCard(Card card) {
this.card = card;
}
public Citizen(String name) {
super();
this.name = name;
}
public Citizen() {
super();
// TODO Auto-generated constructor stub
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Citizen [name=" + name + "]";
}
}
测试类
public class HibernateDemo01 {
public static void main(String[] args) {
add();
}
/**
* 添加数据
*/
private static void add() {
Session session=HibernateUtils.getSession();
Transaction transaction=null;
try{
transaction=session.beginTransaction();
Card card=new Card("社保卡");
Citizen citizen=new Citizen("小丽");
card.setCitizen(citizen);
session.save(card);
transaction.commit();
}finally{
HibernateUtils.close(session);
}
}
}