JPA 4 對映關聯關係

2021-07-30 06:09:36 字數 2866 閱讀 7867

以customer和order為例,多個order可以同屬於乙個使用者。

@table(name="jpa_orders")

@entity

public

class

order

// ...

}

public

class

jpatestsinglemanytoone

/*** 單向多對一關聯關係之查詢:

* 1). 預設情況下使用左外連線的方式來獲取n的一端的物件及其關聯的1的一端的物件

* 2). 可以使用@manytoone的fetch屬性設定關聯屬性的載入策略

*/@test

public

void

testmangtoonefind()

/*** 單向多對一關聯關係之刪除:不能直接刪除1的一端,因為有外來鍵約束

*/@test

public

void

testmanytooneremove()

/*** 單向多對一關聯關係之更新:

*/@test

public

void

testmanytooneupdate()

@before

public

void

init()

@after

public

void

destory()

}

以customer和order為例,乙個customer可以有多個order。

@table(name = "jpa_customers")

@entity

public

class

customer

*@return

*/@joincolumn(name="customer_id")

@onetomany(fetch=fetchtype.eager, cascade=)

public setgetorders()

// ...

}

public

class

jpatestsingleonetomany

/*** 單向一對多關聯關係之查詢:

* 1). 預設情況下對n的一端使用懶載入的載入策略

* 2). 可以使用@onetomany的fetch屬性修改預設的載入策略

*/@test

public

void

testonetomanyfind()

/*** 單向一對多關聯關係之刪除:預設情況下,刪除1的一端時,則先把n的一端的外來鍵置空,再進行刪除

* 可以通過@onetomany的cascade屬性來修改預設的刪除策略,如級聯刪除cascade=

*/@test

public

void

testonetomanyremove()

/*** 單向一對多關聯關係之更新:

*/@test

public

void

testonetomanyupdate()

@before

public

void

init()

@after

public

void

destory()

}

以customer和order為例,乙個customer可以有多個order,多個order也可以同屬於乙個order。

// customer類核心**:

private setorders = new hashset<>();

// 其中customer對應於n的一端的customer屬性名

// @joincolumn(name="customer_id")

public setgetorders()

// order類核心**:

private customer customer;

@joincolumn(name="customer_id")

@manytoone(fetch=fetchtype.lazy)

public customer getcustomer()

// jpatestdoublemanytoone類的核心測試**:

/** * 對映雙向多對一的關聯關係:

* 1). 先儲存n的一端再儲存1的一端,預設情況下雙方均維護關聯關係,額外多出2n條update語句

* 2). 先儲存1的一端再儲存n的一端,預設情況下雙方均維護關聯關係,額外多出1n條update語句

* 3). 建議n的一方來維護關聯關係,而1的一方不維護關聯關係,以減少額外多出的update語句

*/@test

public

void

testdoublemanytoonepersist()

對映雙向一對一關聯關係在執行儲存操作時,預設不採用懶載入策略;可以在維護關聯關係的一方使用懶載入策略,但不建議在不維護關聯關係的一方使用。

對映雙向多對多關聯關係在執行儲存操作時,預設採用懶載入策略,即無論先獲取哪一方,其對中間表而言均是平等的,均採用懶載入的方式。

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

關聯關係對映 關聯關係對映,是對映關係中比較複雜的一種對映關係,總的說來有一對 一 一對多和多對多幾種關係。細分起來他們又有單向和雙向之分。王 漢敏,軟體工程師,ibm 2013 年 6 月 17 日 開始您的試用 關聯關係對映,是對映關係中比較複雜的一種對映關係,總的說來有一對 一 一對多和多對多...

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

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

jpa關聯對映 一)

開發中常用到資料表的關聯 其實很難遇到。spring data jpa 其實是hibernate 提供了一整套十分方便的註解來供我們使用表關聯功能。onetoone onetomany manytoone manytomany 舉例之前,先理解兩個表的關係中,哪乙個是主體,一對一以及多對多需要自己按...