【发布时间】:2016-07-28 13:31:07
【问题描述】:
我有如下代码:
Offre o = offreRepository.save(offre);
for(OffreCompetence offreCompetence : offre.getOffreCompetences()) {
offreCompetence.setOffre(o);
offreCompetenceRepository.save(offreCompetence);
}
如您所见,我第一次调用offreRepository 将Offre 插入数据库,然后我多次调用offreCompetenceRepository 将Offre 中的每个OffreCompetence 插入到数据库。
这里的问题是我多次连接到数据库。
没有其他方法可以一次性完成这些插入吗?
编辑:
我尝试添加这一行:
@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 (?, ?, ?)
【问题讨论】:
标签: spring-boot spring-data-jpa