我有一個代碼如下:多個SQL插入
Offre o = offreRepository.save(offre);
for(OffreCompetence offreCompetence : offre.getOffreCompetences()) {
offreCompetence.setOffre(o);
offreCompetenceRepository.save(offreCompetence);
}
因此,大家可以看到我打電話offreRepository
首次插入一個Offre
到數據庫,然後我打電話offreCompetenceRepository
多次將OffreCompetence
中的每個Offre
插入到數據庫中。
這裏的問題是我正在多次連接到數據庫。
是否還有其他方法可以一次完成這些插入操作?
編輯:
我想加入這一行:
@OneToMany(cascade = CascadeType.ALL, mappedBy="offre")
private Set<OffreCompetences> offreCompetences;
但offreCompetences
不會添加到數據庫中,當我檢查,我注意到,Hibernate並不將其插入日誌文件,但我無法找到他們在數據庫中,我認爲這個問題是,當他試圖添加offreCompetences
他不知道Offre
對他們ID:
Hibernate: insert into offre (date_expiration, date_publication, duree_mission, email_sended, etat, niveau_experience, nombre_postulant, nombre_vue, poste, profil_recherche, titre, code_type_contrat, code_ville) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
2016-07-28 16:08:13.237 DEBUG 10736 --- [nio-8080-exec-4] org.hibernate.SQL : insert into offre_competence (competence, niveau_requis, offre) values (?, ?, ?)
Hibernate: insert into offre_competence (competence, niveau_requis, offre) values (?, ?, ?)
2016-07-28 16:08:13.304 DEBUG 10736 --- [nio-8080-exec-4] org.hibernate.SQL : insert into offre_competence (competence, niveau_requis, offre) values (?, ?, ?)
Hibernate: insert into offre_competence (competence, niveau_requis, offre) values (?, ?, ?)
2016-07-28 16:08:13.339 DEBUG 10736 --- [nio-8080-exec-4] org.hibernate.SQL : insert into offre_competence (competence, niveau_requis, offre) values (?, ?, ?)
Hibernate: insert into offre_competence (competence, niveau_requis, offre) values (?, ?, ?)
請檢查我的編輯 –
我知道我們都有點語言障礙的,但到底是什麼意思「我不能在數據庫中找到它們」?你有沒有交易?你最近怎麼樣?基本上,你真的需要提供一些關於**你如何爲我們提供幫助的細節。關於'他不知道Offre的ID',hibernate應該爲你處理這個映射。 '?'在日誌中只是佔位符。 – JudgingNotJudging
感謝您的時間,我已經通過@KubenT答案解決了我的問題 –