Je suis nouveau à Spring Transaction. Quelque chose que j'ai trouvé vraiment étrange, probablement je l'ai bien compris. Je voulais avoir un niveau de méthode transactionnel et j'ai une méthode d'appelant dans la même classe et il semble que ça n'aime pas cela, il faut l'appeler depuis la classe séparée. Je ne comprends pas comment c'est possible. Si quelqu'un a une idée de la façon de résoudre ce problème, j'apprécierais beaucoup. Je voudrais utiliser la même classe pour appeler la méthode transactionnelle annotée.Printemps méthode @Transaction appel par la méthode dans la même classe, ne fonctionne pas?
Voici le code:
public class UserService {
@Transactional
public boolean addUser(String userName, String password) {
try {
// call DAO layer and adds to database.
} catch (Throwable e) {
TransactionAspectSupport.currentTransactionStatus()
.setRollbackOnly();
}
}
public boolean addUsers(List<User> users) {
for (User user : users) {
addUser(user.getUserName, user.getPassword);
}
}
}
Nous vous remercions de l'information. J'ai refacturé le code pour l'instant, mais pourriez-vous s'il vous plaît m'envoyer un exemple en utilisant AspectJ ou me fournir quelques liens utiles. Merci d'avance. Mike. – Mike
Ajout d'une configuration AspectJ spécifique à la transaction dans ma réponse. J'espère que ça aide. – Espen
Merci Espen pour votre aide. Ça marche!! – Mike