Junior — Middle
Come funziona l'annotazione @Transactional e quali meccanismi utilizza per garantire l'integrità transazionale?
sobes.tech AI
Risposta dell'AI
L'annotazione @Transactional in Java (solitamente nel framework Spring) viene utilizzata per contrassegnare metodi o classi che devono essere eseguiti all'interno di una transazione.
Essa garantisce:
- L'inizio automatico della transazione all'ingresso nel metodo.
- Il commit della transazione al completamento con successo.
- Il rollback della transazione in caso di eccezioni.
I meccanismi utilizzati sono:
- I proxy (dinamici o CGLIB) intercettano le chiamate ai metodi.
- Il gestore delle transazioni (
PlatformTransactionManager) gestisce il ciclo di vita della transazione.
Esempio:
@Service
public class UserService {
@Transactional
public void createUser(User user) {
userRepository.save(user);
// se viene sollevata una RuntimeException qui, la transazione verrà annullata
}
}
In questo modo, @Transactional garantisce l'integrità dei dati, gestendo automaticamente le transazioni senza la necessità di scrivere codice esplicito per avviare, confermare o annullare.