Hibernate处理一对一的另外一种方式是:将多对一加上唯一限制!
改成基于外键的一对一:
从表多加一列做外键,但是这时候从表可以有多个外键相同的记录,就变成了多对一!!但是我们可以在从表对应的对象映射上加一个唯一限制!unique=”true”就保证一对一了
这时的对象不用改动,改动从对象的映射文件和主对象的映射文件
改成基于外键的一对一:
从表多加一列做外键,但是这时候从表可以有多个外键相同的记录,就变成了多对一!!但是我们可以在从表对应的对象映射上加一个唯一限制!unique=”true”就保证一对一了
这时的对象不用改动,改动从对象的映射文件和主对象的映射文件
<class name="IdCard" table="id_card">
<id name="id">
<generator class="native"/>
<!—改为主键自增长
<generator class="foreign">
<param name="property">person</param>
</generator>
-->
</id>
<property name="userfullLife" column="usefull_life"/>
<!—改为多对一,但是加上unique=”true”属性
<one-to-one name="person" constrained="true"/>
-->
<many-to-one name="person" column="person_id" unique="true"/>
</class>