Bonjour,

J'aimerais pouvoir exécuter plusieurs requêtes dans une même transaction.
J'enregistre un élément dans une table et ensuite j'alimente une autre table avec le premier élément inséré. Le problème est que ça ne se fait pas dans la même transaction et du coup si ça plante entre temps il y a que la moitié des enregistrements qui sont faits. Comment je peux régler cela ?

Voici le bout de code en question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
// Enregistre le domaine en base de données
m_societeService.createDomaineCompetence(currentDomaine);
 
// Créé un lien avec chaqun des lieux et le nouveau domaine
List<SocieteLieu> lstSocieteLieu = m_societeService.getSocieteLieuList();
if (CollectionUtils.isNotEmpty(lstSocieteLieu)) {
	for (SocieteLieu societeLieu : lstSocieteLieu) {
		SocieteLieuDomaineComp lien = new SocieteLieuDomaineComp();
		lien.setDomaineCompetence(currentDomaine);
		lien.setSocieteLieu(societeLieu);
 
		m_societeService.createSocieteLieuDomaineComp(lien);
	}
}
Et les méthodes de sauvegarde :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
@Override
public DomaineCompetence createDomaineCompetence(DomaineCompetence domaine) throws DAOException {
	try {
		m_em.persist(domaine);
		return domaine;
	} catch (Exception e) {
		throw new DAOException(e);
	}
}
 
@Override
public SocieteLieuDomaineComp createSocieteLieuDomaineComp(
			SocieteLieuDomaineComp societeLieuDomaineComp) {
	try {
		m_em.persist(societeLieuDomaineComp);
		return societeLieuDomaineComp;
	} catch (Throwable e) {
		throw new RWBEjbException(e);
	}
}
Merci d'avance pour votre aide