JPA 物件關係對映之關聯關係對映策略

2021-07-11 12:41:18 字數 2175 閱讀 6903

關聯關係對映

關聯關係對映,是對映關係中比較複雜的一種對映關係,總的說來有一對

一、一對多和多對多幾種關係。細分起來他們又有單向和雙向之分。

王 漢敏, 軟體工程師, ibm

2013 年 6 月 17 日

開始您的試用

關聯關係對映,是對映關係中比較複雜的一種對映關係,總的說來有一對

一、一對多和多對多幾種關係。細分起來他們又有單向和雙向之分。下面我們逐一介紹一下。

回頁首單向一對一是關聯關係對映中最簡單的一種,簡單地說就是可以從關聯的一方去查詢另一方,卻不能反向查詢。我們用下面的例子來舉例說明,清單 1 中的 person 實體類和清單 2 中的 address 類就是這種單向的一對一關係,我們可以查詢乙個 person 的對應的 address 的內容,但是我們卻不能由乙個 address 的值去查詢這個值對應的 person。

清單 1. 單向一對一關係的擁有端

@entity 

public class person implements serializable

清單 2. 單向一對一關係的反端

@entity 

public class address implements serializable

圖 1. 單向一對一關係對應的 er 圖

回頁首清單 3. 雙向一對一關係中的接受端

@entity 

public class address implements serializable

回頁首

單向關係的一對多我們可以用清單 4 和清單 5 來說明。在關係的發出端 person 中我們使用 onetomany 這個註解對 cellphones 這個屬性進行了注釋,cellphones 中儲存的是 cellphone 的乙個 list 物件,jpa 就是用這種方式實現一對多的。

清單 4. 單向一對多關係的發出端

public class person implements serializable
清單 5. 單向一對多關係的接收端

@entity 

public class cellphone implements serializable

圖 2. 單向一對多關係對應的 er 圖

回頁首清單 6. 雙向一對多關係的接受端

@entity 

public class person implements serializable

清單 7. 雙向一對多關係的發出端

@entity 

public class cellphone implements serializable

圖 3. 雙向一對多關係對應的 er 圖

多對多關聯關係中只能通過中間表的方式進行對映。本例的單向多對多關係如下所示。

在清單 8 中我們使用了 manytomany 這個註解來對 teacher 中的 students 進行注釋,其中 teacher 就是關係的發出端。而在 student 中我們並沒有作任何定義,這是單向多對多的所要求的。

清單 8. 單向多對多關係的發出端

@entity 

public class teacher implements serializable

清單 9. 單向多對多關係的反端

@entity 

public class student implements serializable

圖 4. teacher 對應得資料庫表

清單 10. 雙向多對多關係的擁有端

@entity 

public class teacher implements serializable

清單 11. 雙向多對多關係的反端

@entity 

public class student implements serializable

圖 7. 雙向多對多關係對應的 er 圖

關聯關係對映,是物件對映關係中相對複雜的一種,但也是用處最多的一種,因為資料中的表不可能都是單獨存在,彼此之間必定存在千絲萬縷的聯絡,這也是關係型資料庫的特徵所在。同樣關聯關係的對映,也是物件關係對映中的難點,重點,仔細揣摩,也還是很容易理解掌握的

JPA實體關聯關係對映之概述

一 簡介 首先來說關聯關係是物件導向分析,物件導向設計最重要的部分,jpa是完全可以通過對映來簡化資料持久化到資料,和 hibernate 一樣,jpa 的關聯關係也分為兩種,一種是單向關聯,一種是雙向關聯 單向關聯 只需要單向訪問關聯端,比如說 我們只能通過某一學期訪問這學期的課程,而不能通過課程...

JPA 4 對映關聯關係

以customer和order為例,多個order可以同屬於乙個使用者。table name jpa orders entity public class order public class jpatestsinglemanytoone 單向多對一關聯關係之查詢 1 預設情況下使用左外連線的方式來...

JPA物件關係模型之繼承對映策略

single table 策略 這是繼承對映中的預設策略,在不特別指明的情況下,系統預設就是採用這種對映策略進行對映的。這個策略的對映原則就是父類包括子類中新新增的屬性全部對映到一張資料庫 表中,資料庫 表中有乙個自動生成的字段用來儲存區分不同的子類的資訊。joined subclass 策略 這種...