gpt4 book ai didi

hibernate - 使用 joinColumn 的单向一对多映射

转载 作者:行者123 更新时间:2023-12-04 18:12:14 25 4
gpt4 key购买 nike

根据 hibernate 文档, hibernate 团队强烈建议不要在没有连接表的情况下使用一对多单向映射。我想知道这是因为性能问题还是背后有任何其他原因。

说如果有一个员工可以有很多电话号码,那么我会有这个映射

@Entity
public class Employee {
...
@OneToMany
@JoinColumn(name="employee_fk")
public List<Phone> phones;
...
}

@Entity
public class Phone {
...
}

Hibernate 将使用外键生成电话表,所以我在这里看不到任何问题。另外,我不想让电话类(class)拥有员工属性(property)。
Hibernate 团队建议在这种情况下使用连接表,但我为什么要不必要地创建一个表?

最佳答案

这更像是一个设计问题而不是性能问题。如果您认为 Phone 不知道分配给它的员工,这意味着 Phone 实体独立于 Employee 实体。如果它独立于 Employee 实体,它的表不应该有 Employee 表的外键。

此外,由于电话不知道它的员工,这意味着它可能被重用并与其他类型的实体相关联:公司、客户等。拥有所有实体的外键是有问题的在电话 table 本身有一部电话。

关于hibernate - 使用 joinColumn 的单向一对多映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12384431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com