Bonjour,

J'ai une question concernant l'opération de rollback dans JPA :

Pour bien expliquer mon interrogation je vais présenter un exemple :

J'ai une fonction dans la classe service qui persiste 2 objets différentes de 2 classes DAO :

Action N°1 persister une Personne :
Action N°2 mettre à jour un article :

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
 
@Service("service")
@Transactional
public class ServiceImpl implements IService {
 
.....
private void test() {
....
//Action 1 
Personne p = new Personne("toto",25);
PersonneService.save(p);
 
....
//Action 2
Article a = ArticleService.getArticleByName("XXX");
a.setVendeur(p);
ArticleService.update(a);
....
}
Question :

Comment faire en sorte que si l'action N°2 échoue, faire un rollback pour annuler l'action N°1 ?
Si j'englobe mon traitement dans un try catch, je remarque que le système sauvegarde quand même la personne même si la mise à jour de l'article échoue !
Merci de vos réponses.