一對一不用多說.
一對多:
一a對多b.單向: (tb_a,tb_b)
**省略必須的但和主題的內容如@entity等標記,setter,getter等
class a
class b
只在a這一端加上@onetomany就行了.b這一端不用任何標記,這時jpa一定要求另外乙個輔助表.表名為:tb_a_tb_b即兩表用_鏈結,其中儲存兩個表的id關係.欄位名稱為:
a_id,b在a中引用的字段+」_id」;即 bs_id; 如果是自動生成表,這個關聯表也會自動生成.
在單向一對多時的操作時也是只需單向設定即可,id對應關係由關聯表自動維護:
b b = new b();
//不用b.setid(***);
a a = new a();
a.getbs().add(b);
em. persist(a);
一a對多
b.雙向
(tb_a,tb_b)
如果不想用中間關聯表
,只能用雙向關係:
class a
class b
此時tb_b中需a_id欄位.
操作時需要雙向設定,否則a_id為null,關係丟失:
b b = new b();
//其它set.
a a = new a();
b.seta(a);
a.getbs().add(b);
em. persist(a);
這樣才能正確儲存完整的資料格式
多b對一a
.雙向(tb_a,tb_b)
當然,你可以從b中利用外健預設單向關聯manytoone,但這樣的單向關係在絕大多數場合沒有意義.
如乙個班級沒有獲取學生的集合,卻在學生實體中獲取班級,雖然可能,但沒有多少人不把它做成雙向關係的:
這裡需要在tb_b中設定a_id為外來鍵關聯到tb_a中的id.
class a
class b
而且這裡的操作應該是:
a a = new a();
bb = new b();
b.seta(a);
em. persist(b);
JPA中關係印射注意事項
一對一不用多說.一對多 一a對多b.單向 tb a,tb b 省略必須的但和主題的內容如 entity等標記,setter,getter等 class a class b 只在a這一端加上 onetomany就行了.b這一端不用任何標記,這時jpa一定要求另外乙個輔助表.表名為 tb a tb b即...
C 中map注意事項
1 在map中,由key查詢value時,首先要判斷map中是否包含key。2 如果不檢查,直接返回map key 可能會出現意想不到的行為。如果map包含key,沒有問題,如果map不包含key,使用下標有乙個危險的 會在map中插入乙個key的元素,value取預設值,返回value。也就是說,...
程式設計中的注意事項
下面 編譯時,提示有未檢查的內容,執行時可能有異常。為什麼不檢查呢,因為不知道帶入的t和v就是static方法中的integer和double,所以提示有未檢查或不安全的操作,由於下面程式建立的inte ce介面的兩個引數和static方法中的吻合,所以,執行時沒有出現異常。這裡建立的inte ce...