相关疑难解决方法(0)

Hibernate单向一对多关联 - 为什么连接表更好?

在本文档中(向下滚动到"单向"部分):

http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/#entity-mapping-association-collections

它表示与连接表的单向一对多关联比仅在自有实体中使用外键列更受欢迎.我的问题是,为什么它更受欢迎?

hibernate foreign-keys associations one-to-many

32
推荐指数
2
解决办法
3万
查看次数

为什么建议避免外键上的单向一对多关联?

可能重复:
Hibernate单向一对多关联 - 为什么连接表更好?

在Hibernate在线文档中,在第7.2.3节"一对多"中,提到了:

外键上的单向一对多关联是一种不常见的情况,不建议这样做.您应该使用连接表进行此类关联.

我想知道为什么?我唯一想到的是,它可以在级联删除期间产生问题.例如,Person指的是外键上一对多关系的地址,该地址将拒绝在该人之前删除.

任何人都可以解释推荐背后的理性吗?

以下是参考文件内容的链接:7.2.3.一到多

我在这里复制粘贴了实际内容:

外键上的单向一对多关联是一种不寻常的情况,不建议这样做.

<class name="Person">
    <id name="id" column="personId">
        <generator class="native"/>
    </id>
    <set name="addresses">
        <key column="personId" 
            not-null="true"/>
        <one-to-many class="Address"/>
    </set>
</class>

<class name="Address">
    <id name="id" column="addressId">
        <generator class="native"/>
    </id>
</class>
Run Code Online (Sandbox Code Playgroud)
create table Person (personId bigint not null primary key)
create table Address (addressId bigint not null primary key, personId bigint not null)
Run Code Online (Sandbox Code Playgroud)

您应该使用连接表进行此类关联.

java sql rdbms hibernate

17
推荐指数
1
解决办法
1万
查看次数

标签 统计

hibernate ×2

associations ×1

foreign-keys ×1

java ×1

one-to-many ×1

rdbms ×1

sql ×1