2013-07-10 18 views
6

So che probabilmente si tratta di un duplicato e, ironia della sorte, prima di iniziare a leggere qua e là a questo proposito, PENSIAMO, sapevo a cosa serviva (INUTILE DA DIRE, ma lo dirò ancora, per favore correggimi dove ho sbagliato) :
allevia il programmatore di dover utilizzare transaction.begin() e commit(). Se si dispone di un metodo che chiama due metodi DAO che normalmente dispongono ciascuno di uno transaction.begin e transaction.commit che comprende le operazioni reali e li chiama, si otterrebbero due transazioni (e potrebbero esserci problemi di rollback se il precedente metodo dao avrebbe dovuto essere sottoposto a rollback anche). Ma se usi il metodo @transactional allora tutte quelle chiamate DAO saranno racchiuse in un unico ciclo begin() - commit(). Ovviamente nel caso in cui si usi @transactional, i DAO non devono utilizzare i metodi begin() e commit().Cosa fa @Transactional?

+1

hai ragione questo è il duplicato di http://stackoverflow.com/questions/1099025/spring-transactional-what-happens-in-background – robotoaster

+1

Una cosa che voglio aggiungere è che se aggiungi del codice come commit o iniziare programmaticamente nel tuo metodo, funzionerà. Il transactional modifica solo la connessione del database per non eseguire il commit automatico. – OQJF

risposta