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 :
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 // 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); } }
Merci d'avance pour votre aide
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); } }
Partager