虽然这种情况很少见,但Hibernate同样允许这样采用连接表映射单向1--->1关联。有连接表的单向1--->1关联同样只需要为有连接表的N--->1关联中的<many-to-one.../>元素增加unique="true"属性即可。
Person.hbm.xml :
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="db.domain">
<class name="Person" table="persons">
<id name="id" type="integer">
<generator class="identity"></generator>
</id>
<property name="name" type="string">
<column name="name"></column>
</property>
<property name="age" type="integer">
<column name="age"></column>
</property>
<join table="person_address">
<key column="person_id"/>
<many-to-one name="address" class="Address"
column="address_id" cascade="all" unique="true"/>
</join>
</class>
</hibernate-mapping>
运行Test.java,查看数据库: