1. 程式人生 > >JPA基礎知識(四):對映關聯關係

JPA基礎知識(四):對映關聯關係

JPA對映關聯關係

  1. 對映單項多對一的關聯關係(常用)
  2. 對映單項一對多的關聯關係
  3. 對映雙向多對一的關聯關係
  4. 對映雙向一對一的關聯關係
  5. 對映雙向多對多的關聯關係

一、單項多對一的關聯關係

客戶實體:
客戶實體類及資料庫表
Customer【一】 中沒有 Order【多】

訂單實體:
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
Order【多】 中有 Customer【一】
“多” 中含有外來鍵

測試對映關係:

  • 【增】
    在這裡插入圖片描述
    建議:
    儲存“多對一時”,先儲存“一”,後儲存“多”;這樣不會有多餘的update語句。
  • 【查】
    在這裡插入圖片描述
  • 【刪】
    刪 “ 多 ” 的一方

    不能直接刪除 “ 多 ” 的一方,因為有外來鍵約束
  • 【改】
    在這裡插入圖片描述

二、單項一對多的關聯關係

客戶實體:
客戶實體類及資料庫表
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
" 一 " 的有外來鍵

訂單實體:
在這裡插入圖片描述

測試對映關係:

  • 【增】
    在這裡插入圖片描述
    一對多關聯關係進行儲存時,一定會多出update,因為多的一端不會儲存外來鍵列。
  • 【查】
    在這裡插入圖片描述
  • 【刪】
    在這裡插入圖片描述
  • 【改】
    在這裡插入圖片描述

三、雙向多對一的關聯關係

雙方的外來鍵列名需要一致;

客戶實體:
客戶實體類及資料庫表
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

訂單實體:
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

測試對映關係:

  • 【增】
    在這裡插入圖片描述

    在雙向 1 => n 的關聯關係,執行儲存時:
    [1.] 若先儲存 n 的一端,在儲存 1 的一端,預設情況下會多出 n 條update語句;
    [2.] 若先儲存 1 的一端,則會多出 x 條update語句
    建議:
    在進行雙向1 => n關聯關係是,建議使用 n 的一方來維護關聯關係, 這樣會有效減少SQL語句。

四、雙向一對一的關聯關係

經理和部門的關係

經理實體:
在這裡插入圖片描述
在這裡插入圖片描述

部門實體:
在這裡插入圖片描述
在這裡插入圖片描述

測試程式碼:

  • 【增】
    在這裡插入圖片描述
  • 【查】
    在這裡插入圖片描述
    先獲取不維護關係的一方,也一樣。

五、雙向多對多的關聯關係

雙向多對多必須由一方放棄維護多對多關係,否則中間表會出現主鍵重複的問題。
商品和類別的關係

類別實體類
在這裡插入圖片描述

商品表實體類
在這裡插入圖片描述
在這裡插入圖片描述

測試對映程式碼:
-【增】
在這裡插入圖片描述
-【查】
在這裡插入圖片描述