J'apprends le printemps et j'ai des problèmes de transaction au printemps.Redémarrage de la transaction en cas d'exception au printemps
Voici mon code
@Transactional(rollbackFor = Exception.class)
public void createGroupStudent(Student A,Student B,String nameGroup){
try{
//create Group
createGroup(nameGroup);
//createMember
createMember(A,B);
}catch(Exception e){
logger.error(e.getMessage());
}
}
@Transactional(rollbackFor = Exception.class)
public void createGroup(String nameGroup){
try{
repoGroup.save(nameGroup);
}catch(Exception e){
logger.error(e.getMessage());
}
}
@Transactional(rollbackFor = Exception.class)
public void createMember(Student A,Student B){
try{
// function will throw a kind of Exception involve to " error constraint sql oracle " .
//It's my intended
repoMember.save(A,B);
}catch(Exception e){
logger.error(e.getMessage());
}
}
Le problème est lorsque la fonction createMember()
throws Exception, rollback transaction alway pourquoi? Je ne peux pas comprendre ce qui est arrivé! J'ai ajouté essayer, attraper dans chaque méthode, mais cela n'a pas fonctionné.
Bien que la méthode createMember()
rencontre des problèmes lors de l'enregistrement dans la base de données (ici j'utilise la fonction saveAndFlush()
) .Je le sais et j'attrape cette exception. La transaction parente createGroupStudent()
pense elle-même qu'il n'y a pas de problème et que la transaction est validée. Mais quand valider une fois de plus la méthode createMember()
va casser et jeter Exception.Je pense que la méthode createGroup()
ne reviendra pas. Mais en réalité, cette fonction a été annulée, toutes les transactions ont été annulées? Qu'est-il arrivé?. J'utilise transaction atomikos.
Merci beaucoup
Merci. Mais quand j'attrape des exceptions. Transaction toujours en cours? Je ne comprends pas @. @. –
Comment avez-vous vérifié si la transaction est rollback? Il se peut que la transaction ne soit pas validée. Vérifiez votre configuration. – Adi
Je pense, bien que la méthode createMember() rencontre des problèmes lors de l'enregistrement dans la base de données (ici j'utilise la fonction 'saveAndFlush()'). Je le sais et j'attrape cette exception. Transaction précaire createGroupStudent() pense que ce n'est pas un problème et une transaction de validation. Mais quand commit encore une fois la méthode createMember() va se casser et lancer Exception. Je pense que la méthode createGroup() ne sera pas restaurée. Mais en réalité, cette fonction était rollback, toutes les transactions étaient rollback? Que c'est il passé ???? . C'est mes problèmes :(J'utilise la transaction atomikos –