例子:一人一卡
person.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.gh.hibernate.test.person">
<id
name="id"
>
<generator class="native"></generator>
</id>
<property name="name"/>
<one-to-one name="card"
class="com.gh.hibernate.test.card"
cascade="all"/>
</class>
</hibernate-mapping>
person.java
package com.gh.hibernate.test;
import java.io.Serializable;
public class person implements Serializable {
/**
* 测试一对一主键关联映射(多对一的一个特例)
*/
private static final long serialVersionUID = 3948420181999364682L;
private Integer id;
private String name;
private card card;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public card getCard() {
return card;
}
public void setCard(card card) {
this.card = card;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.gh.hibernate.test.card">
<id
name="id"
>
<generator class="foreign">
<param name="property">person</param>
</generator>
</id>
<one-to-one name="person"
class="com.gh.hibernate.test.person"
constrained="true"/>
</class>
</hibernate-mapping>
card.java
package com.gh.hibernate.test;
import java.io.Serializable;
public class card implements Serializable {
/**
* 测试一对一主键关联映射
*/
private static final long serialVersionUID = -3349662011815510358L;
private Integer id;
private person person;
public person getPerson() {
return person;
}
public void setPerson(person person) {
this.person = person;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}
测试
public void testDemo2(){
Configuration config = new Configuration().configure();
SessionFactory sessionFactory = config.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction tran = session.beginTransaction();
person p1 = new person();
p1.setName("jack");
card c1 = new card();
c1.setPerson(p1);
p1.setCard(c1);
session.save(p1);
session.flush();
tran.commit();
}