首頁 > Java > java教程 > 物件關係映射 (ORM) 中的「擁有者」是什麼?

物件關係映射 (ORM) 中的「擁有者」是什麼?

Linda Hamilton
發布: 2024-11-20 02:37:01
原創
832 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板