這篇文章給大家介紹@ManyToMany CascadeType.ALL時(shí)save報(bào)detached entity passed to persist怎么辦,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括臨澧網(wǎng)站建設(shè)、臨澧網(wǎng)站制作、臨澧網(wǎng)頁(yè)制作以及臨澧網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,臨澧網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到臨澧省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
public class User{ @ManyToMany(cascade = CascadeType.ALL) @JoinTable(name = "user_role", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "role_id")) private Setgroups = new HashSet (); //省略 getter、setter }
User user = new User(); Group g = groupRepo.findById(8);//數(shù)據(jù)庫(kù)查詢 Set gruops = new HashSet(); gruops.add(g); user.setGroups(gruops); userRepo.save(user);
userRepo.save(user);
保存數(shù)據(jù)時(shí)會(huì)出現(xiàn)錯(cuò)誤detached entity passed to persist
。
錯(cuò)誤原因: 保存user
時(shí)想去級(jí)聯(lián)保存gruops
。但是gruop已經(jīng)有id值了。所以報(bào)錯(cuò)。
解決方案,把user.setGroups(gruops);
放到保存user
之后。如下:
User user = new User(); userRepo.save(user); //先保存user Group g = groupRepo.findById(8);//數(shù)據(jù)庫(kù)查詢 Set gruops = new HashSet(); gruops.add(g); user.setGroups(gruops); //再設(shè)置groups userRepo.save(user); //最后更新user
關(guān)于@ManyToMany CascadeType.ALL時(shí)save報(bào)detached entity passed to persist怎么辦就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。