我有一个代码如下:多个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答案解决了我的问题 –