基于Jpa中ManyToMany和OneToMany的雙向控制
Jpa ManyToMany和OneToMany的雙向控制
下面我們使用權(quán)限管理中Role<->Account(用戶ManyToMany賬號(hào))、Role<->Domain(用戶OneToMany權(quán)限域)的關(guān)系來(lái)舉例。
1、ManyToMany
Role表

Account表

在兩個(gè)表的對(duì)應(yīng)屬性上添加JoinColumns和inverseJoinColumns,并且相互交換。
JoinColumn指定本表在中間表中的列名。inverseJoinColumns指定受控方的列名。
在兩個(gè)類中都加上這兩個(gè)屬性,并且值互換,則能夠?qū)崿F(xiàn)雙向控制,即任何一方刪除,都會(huì)自動(dòng)刪除對(duì)應(yīng)中間表的數(shù)據(jù)。
2、OneToMany以及ManyToOne
Role表

Domain表

cascade用來(lái)指定級(jí)聯(lián)操作, cascade的值只能從CascadeType.PERSIST(級(jí)聯(lián)新建)、CascadeType.REMOVE(級(jí)聯(lián)刪除)、CascadeType.REFRESH(級(jí)聯(lián)刷新)、CascadeType.MERGE(級(jí)聯(lián)更新)中選擇一個(gè)或多個(gè)。還有一個(gè)選擇是使用CascadeType.ALL,表示選擇全部四項(xiàng)。
如果不指定Cascade,默認(rèn)是空的,那么在刪除Role的時(shí)候,只會(huì)把Domain表中的role這一列的值刪除,而該條記錄不刪除。
JoinColumn需要指定,如果不指定就會(huì)在Domain表中增加額外的一列,這一列與Domain的id一樣。經(jīng)過試驗(yàn),不指定還會(huì)造成級(jí)聯(lián)查找失敗,原因未知。
JPA中ManyToMany關(guān)系問題
配置JPA的時(shí)候多對(duì)多關(guān)系,報(bào)以下錯(cuò)誤:
org.hibernate.AnnotationException: Illegal use of mappedBy on both sides of the relationship: com.csair.gme.core.domain.ComponentType.componentPropertys
解決辦法
不能兩邊都用mappedBy,只能用一邊,而且用mappedBy的那一邊是從表,另外一邊就是主表。mappedBy=‘主表里的變量名'
問題解決!
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java中HttpServletResponse響應(yīng)中文出現(xiàn)亂碼問題
這篇文章主要介紹了Java中HttpServletResponse響應(yīng)中文出現(xiàn)亂碼問題的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
WeakHashMap?和?HashMap?區(qū)別及使用場(chǎng)景
這篇文章主要為大家介紹了WeakHashMap?和?HashMap?的區(qū)別是什么以及何時(shí)使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
Java二維數(shù)組與動(dòng)態(tài)數(shù)組ArrayList類詳解
這篇文章主要給大家介紹了關(guān)于Java二維數(shù)組與動(dòng)態(tài)數(shù)組ArrayList類的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
SpringBoot統(tǒng)一功能處理實(shí)現(xiàn)的全過程
最近在做項(xiàng)目時(shí)需要對(duì)異常進(jìn)行全局統(tǒng)一處理,主要是一些分類入庫(kù)以及記錄日志等,下面這篇文章主要給大家介紹了關(guān)于SpringBoot統(tǒng)一功能處理實(shí)現(xiàn)的相關(guān)資料,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01
java使用淘寶API讀寫json實(shí)現(xiàn)手機(jī)歸屬地查詢功能代碼
本文介紹java使用淘寶API讀寫json實(shí)現(xiàn)手機(jī)歸屬地查詢功能,代碼簡(jiǎn)單,大家可以參考使用2013-11-11

