hibernate document表示A unidirectional many-to-one association on a join table is common when the association is optional.
。
请告诉我为什么在这里被称为optional
?
<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"
not-null="true"/>
</join>
</class>
答案 0 :(得分:0)
这也是因为你要么注释或定义已经加入的实体的映射。
此外,它是可选的原因是因为@JoinColumn是在默认列上完成的,该列是通过连接所有者端的名称+ _ +主键列的名称来计算的
所以基本上,如果您没有使用列名指定@JoinColumn注释,它将尝试使用地址加入@ManyToOne中hibernate关系中的名称+ _ < / strong> + id (因为这是Person表的主键。 所以默认连接将在address_id上发生。
如果您将主键更改为personId,则联接将位于 address_personId
希望我能够正确解释