本文记录hibernate一对一双向关联,最简单的例子应该是一夫一妻制了:
package com.model;
//丈夫类
public class Husband {
private int id;
private String name=null;
private Wife wife=null;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Wife getWife() {
return wife;
}
public void setWife(Wife wife) {
this.wife = wife;
}
}
package com.model;
import java.util.*;
public class Wife {
private int id;
private String name=null;
private Husband husband=null;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Husband getHusband() {
return husband;
}
public void setHusband(Husband husband) {
this.husband = husband;
}
}
//Husband.cfg.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 package="com.model">
<class name="Husband" table="husband" >
<id name="id" column="id">
<generator class="native"></generator>
</id>
<property name="name" column="name"></property>
<many-to-one name="wife" column="wife_id" class="Wife" unique="true" ></many-to-one>
</class>
</hibernate-mapping>
//Wife.cfg.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 package="com.model">
<class name="Wife" table="wife" >
<id name="id" column="id">
<generator class="native">
</generator>
</id>
<property name="name" column="name"></property>
<!--这个地方必须指定property-ref="wife",这是最关键的地方,这样就建立了双向关联-->
<one-to-one name="husband" class="Husband" property-ref="wife" />
</class>
</hibernate-mapping>
当然还有其他的方式配置一对一,但这个一对一是最常用的方式