Sono nuovo alla transazione di primavera. Qualche cosa che ho trovato davvero strano, probabilmente l'ho capito bene. Volevo avere una transazione attorno al livello del metodo e ho un metodo chiamante all'interno della stessa classe e sembra che non gli piaccia, deve essere chiamato dalla classe separata. Non capisco come sia possibile. Se qualcuno ha un'idea su come risolvere questo problema, sarei molto grato. Vorrei usare la stessa classe per chiamare il metodo transazionale annotato.La chiamata di metodo Spring @Transaction con il metodo all'interno della stessa classe non funziona?
Ecco il codice:
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);
}
}
}
Grazie per l'informazione. Ho rifattorizzato il codice per ora, ma potresti mandarmi un esempio usando AspectJ o fornirmi qualche link utile. Grazie in anticipo. Mike. – Mike
Aggiunta configurazione AspectJ specifica della transazione nella mia risposta. Spero possa essere d'aiuto. – Espen
Grazie Espen per tutto il tuo aiuto. Funziona!! – Mike