標籤:unique const 配置 主鍵 one 轉變 param table 使用
1. 基於外部索引鍵關聯的單向“一對一”關聯
其中指定many-to-one的unique="true",為單向“一對一”,不指定就是單向“多對一”
<class name="Person">
<id name="id" column="personId"><generator class="native"/></id>
<many-to-one name="address" column="addressId" unique="true" class="Address" />
</class>
2. 基於串連表的單向“一對一”關聯,是一種很少見的情況,不推薦使用
其中指定many-to-one的unique="true",為單向“一對一”,不指定就是單向“多對一”
<class name="Person">
<id name="id" column="personId"><generator class="native"/></id>
<join table="PersonAddress" optional="true">
<key column="personId" unique="true"/>
<many-to-one name="address" column="addressId" unique="true" class="Address" not-null="true"/>
</join>
</class>
無論使用使用上面哪種方式,關聯是單向的,另外一端無需額外配置
<class name="Address">
<id name="id" column="addressId"><generator class="native"/></id>
</class>
3. 基於主鍵關聯的單向“一對一”關聯,不常用,通常使用一個特定的id 產生器並需要轉變關聯的方向
<class name="Person">
<id name="id" column="personId"><generator class="native"/></id>
</class>
<class name="Address">
<id name="id" column="personId">
<generator class="foreign">
<param name="property">person</param>
</generator>
</id>
<one-to-one name="person" constrained="true"/>
</class>
Hibernate單向“一對一”關聯