第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何引用已經(jīng)保存在數(shù)據(jù)庫中的實例?

如何引用已經(jīng)保存在數(shù)據(jù)庫中的實例?

慕桂英3389331 2023-09-13 15:42:03
我試圖在春天建立電影和演員之間的關(guān)系模型。這里有我的兩門課:@Entitypublic class Movie {    @Id    @GeneratedValue(strategy = GenerationType.IDENTITY)    private Long id;    private String title;    private String genre;    private String year;    @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE})    private List<Actor> actors;// getters and setters@Entitypublic class Actor {    @Id    @GeneratedValue(strategy = GenerationType.IDENTITY)    private Long id;    private String name;    private String surname;    private String age;// getters and setters我已經(jīng)定義了多對多單向關(guān)系,它工作正常,但在以下情況下不行。如果我插入一部新電影,其中包含數(shù)據(jù)庫中尚未存在的新演員,則效果很好,所有表都會正確更新。但是,如果我想插入一部包含已保存演員的新電影,我不想保存兩次,我希望關(guān)系表引用已保存的演員,并且在演員表中不添加新演員。以下 JSON 是發(fā)送到端點以創(chuàng)建新電影的 JSON:{  "actors": [    {      "age": "string",      "dni": "string",      "name": "string",      "surname": "string"    }  ],  "genre": "string",  "title": "string",  "year": "string"}那么如何插入數(shù)據(jù)庫中已有演員的電影以便被引用呢?因為如果我插入一個具有完全相同數(shù)據(jù)的新數(shù)據(jù),我會將該參與者保存兩次,并且在標識符重復的情況下,我會遇到唯一索引或主鍵沖突。非常感謝你的幫助!
查看完整描述

2 回答

?
夢里花落0921

TA貢獻1772條經(jīng)驗 獲得超6個贊

如果數(shù)據(jù)庫中已有演員,則必須先獲取它,然后將其添加到列表中。


 @Autowired

 ActorRepository actorRepository;


 Optional<Actor> actorOptional = actorRepository.findById(id);

 if(actorOptional.isPresent()){

     movie.getActors().add(actorOptional.get());

 }else{

   // create new actor and add it to the list

 }


查看完整回答
反對 回復 2023-09-13
?
一只甜甜圈

TA貢獻1836條經(jīng)驗 獲得超5個贊

如果@Id兩邊都有對象標識符 [ ],則可以使用session.saveOrUpdate

來自 Hibernate 文檔:

saveOrUpdate()執(zhí)行以下操作:

  • 如果該對象已在此會話中持久化,則不執(zhí)行任何操作

  • 如果與會話關(guān)聯(lián)的另一個對象具有相同的標識符,則拋出異常

  • 如果對象沒有標識符屬性,save()

  • 如果對象的標識符具有分配給新實例化的對象的值,save()則它

  • 如果該對象由<version>或 進行版本控制<timestamp>,并且版本屬性值與分配給新實例化的對象的值相同,save()

  • 否則 update()該對象


查看完整回答
反對 回復 2023-09-13
  • 2 回答
  • 0 關(guān)注
  • 118 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號