hibernate中的 一对一独一外键双向关联

hibernate中的 一对一唯一外键双向关联

1、一对唯一外键关联映射是多对一关联映射的特例,可以采用<many-to-one>标签,指定多的一端的unique=true,这样就限  制了多的一端的多重性为一,通过这种手段映射一对一唯一外键关联

2、一对唯一外键关联映射——双向

一对一唯一外键关联双向,需要在另一端(passcard),添加<one-to-one>标签,指示hibernate如何加载其关联对象,默认根据主键加载person,外键关联映射中,因为两个实体采用的是person的外键维护的关系,所以不能指定主键加载passcard,而要根据passcard的外键加载

<?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="com.pk.po">
	<class name="Passcard">
		<id name="id">
			<generator class="native"></generator>
		</id>
		<property name="code"></property>
		<many-to-one name="person" column="per_id" unique="true"></many-to-one>
	</class>
</hibernate-mapping>


<?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="com.pk.po">
	
		<class name="Person">
			<id name="id">
				<generator class="native"></generator>
			</id>
			<property name="name"></property>
			<one-to-one name="passcard" property-ref="person"></one-to-one>
		</class>
</hibernate-mapping>