jpa 表關係對應

2021-08-20 09:37:26 字數 2083 閱讀 4079

這裡使用lombok,簡化**。

分為兩種關係,是一對一主鍵關聯,一對一外來鍵關聯

一對一主鍵關聯:這裡使用使用者和使用者詳情:

@entity

@table(name="tb_user")

@data

public class user

@data

@entity

@table(name = "tb_detail")

public class userdetail

@onetoone表示乙個多對一的對映,該註解標註的屬性通常是資料庫表的外來鍵

optional:是否允許該字段為null,該屬性應該根據資料庫表的外來鍵約束來確定,預設為true

fetch:表示抓取策略,預設為fetchtype.eager ,有 eager(急記載,立即記載)和lazy(懶載入)。

cascade:表示預設的級聯操作策略,可以指定為all(全部),persist(級聯儲存),merge(級聯跟新),refresh(級聯重新整理)和remove(級聯刪除)中的若干組合,預設為無級聯操作

targetentity:表示該屬性關聯的實體型別.該屬性通常不必指定,orm框架根據屬性型別自動判斷targetentity.

一對一外檢關聯:

只需要將@primarykeyjoincolumn 變為@joincolmn("外來鍵欄位名")

@joincolmn 是用來外來鍵的宣告的,可以指定外來鍵的欄位名稱。

乙個使用者對應多個收貨位址,使用者類裡存在位址的list,位址裡不存在使用者的類。

@entity

@table(name="tb_user")

@data

public class user

address類

@entity

@table(name="tb_address")

public class address

在收貨位址裡不需要進行任何操作。只需要把按照正常配置即可。

位址類中存在user 屬性,user裡沒有位址的集合。

使用者類:

@entity

@table(name="tb_user")

@data

public class user

@entity

@table(name="tb_address")

public class address

一對多雙向:

使用者類裡有位址的集合,位址類裡有使用者的例項

使用者類:

@entity

@table(name="tb_user")

@jsonignoreproperties(value= )

@data

public class user

位址類:

@data

@entity

@table(name="tb_address")

@jsonignoreproperties()

public class address

加這個註解@jsonignoreproperties()的目的是為了查詢的時候不會迴圈呼叫,造成堆疊溢位

使用者和角色:

使用者類:

@entity

@table(name="tb_user")

@jsonignoreproperties(value= )

@data

public class user

角色類:

@data

@entity

@table(name="tb_role")

public class role

使用@jointable註解來說明中間表,name只中間表的表名,joincolumns只當前實體在中間表的字段,inverserjoincloumns指關聯的另外乙個實體在中間表的欄位名。

Swift與C型別對應關係表

每乙個 c 語言基本型別,swift 都提供了與之對應的型別。在 swift 中呼叫 c 方法的時候,會用到這些型別 c 型別 swift 對應型別 別名bool cbool bool char,unsigned char cchar,cunsignedchar int8,uint8 short,u...

mysql表的對應關係 資料庫表之間的對應關係

關聯對映 一對多 多對一 存在最普遍的對映關係,簡單來講就如球員與球隊的關係 一對多 從球隊角度來說乙個球隊擁有多個球員 即為一對多 多對一 從球員角度來說多個球員屬於乙個球隊 即為多對一 關聯對映 一對一 一對一關係就如球隊與球隊所在位址之間的關係,一支球隊僅有乙個位址,而乙個位址區也僅有一支球隊...

JPA入門02 關聯關係

對映單向一對多的關聯關係 跟前面是類似的 對映雙向多對一的關聯關係 對映雙向一對一的關聯關係 對映雙向多對多的關聯關係 由一方放棄主鍵維護 table name customer2 entity public class customer table name order2 entity publi...