首页 >Java >java教程 >对象关系映射 (ORM) 中的'拥有方”是什么?

对象关系映射 (ORM) 中的'拥有方”是什么?

Linda Hamilton
Linda Hamilton原创
2024-11-20 02:37:01834浏览

What is the

理解 ORM 映射中的“拥有方”

在对象关系映射(ORM)中,“拥有方”的概念是指管理数据库中外键关系的实体。出现这种情况是因为关系数据库本质上不支持双向关系,这与面向对象编程不同。

拥有方的必要性

在 ORM 中,拥有方负责通过拥有代表关系中其他实体的外键来维护关系的完整性。如果没有所有权方,关系的每一方都需要外键,从而导致不必要的关联表和潜在的数据重复。

不同关系类型中的所有权

  • 一对多:拥有方通常在子表中包含外键,允许多个子级与单个父级关联。
  • 一对一-One:与一对多类似,拥有方持有外键,而非拥有方则使用mappedBy属性来表示关系。
  • 多对-一:拥有方持有外键,允许多个实体引用单个父实体。

示例:与拥有方的一对多映射

考虑以下 Java 示例:

@Entity
public class Person {
    @Id
    private Long id;
    @OneToMany(mappedBy = "person")
    private List<IdDocument> idDocuments;
}

@Entity
public class IdDocument {
    @Id
    private Long id;
    @ManyToOne
    private Person person;
}

在此示例中,Person 是拥有方,因为它包含引用 IdDocument 表的外键。 IdDocument中的mappedBy属性表示该关系由拥有方管理。

使用mappedBy的含义

在非拥有方使用mappedBy转移了管理与拥有方的关系。这意味着:

  • 外键更新只能在拥有方执行(例如 idDocument.setPerson(person))。
  • Hibernate 不会跟踪关系的更改非拥有方(例如 person.getIdDocuments().add(idDocument))。

以上是对象关系映射 (ORM) 中的'拥有方”是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn