Spring Boot

Transazioni Spring

Gestione delle transazioni con @Transactional, propagation, isolation, rollback, PlatformTransactionManager

30 domande da colloquio·
Senior
1

Qual è il ruolo principale dell'annotazione @Transactional in Spring?

Risposta

@Transactional indica che un metodo deve essere eseguito all'interno di un contesto transazionale, garantendo l'atomicità delle operazioni di database. Spring crea automaticamente un proxy AOP attorno alla classe per gestire l'inizio, il commit e il rollback delle transazioni. Questo approccio dichiarativo semplifica notevolmente la gestione transazionale rispetto alla programmazione manuale con TransactionTemplate o PlatformTransactionManager.

2

Qual è il tipo di propagation predefinito per @Transactional?

Risposta

Propagation.REQUIRED è il tipo di propagation predefinito. Con questa strategia, Spring si unisce a una transazione esistente se ne esiste una, altrimenti ne crea una nuova. Questo è il comportamento più comune e intuitivo per la maggior parte dei casi d'uso, garantendo che sia sempre presente una transazione per le operazioni di database.

3

Cosa succede se viene lanciata una RuntimeException in un metodo @Transactional?

Risposta

Per impostazione predefinita, Spring esegue automaticamente il rollback della transazione quando viene lanciata una RuntimeException (o un Error). Ciò garantisce che le modifiche al database vengano annullate in caso di errori imprevisti. Al contrario, le eccezioni checked (che ereditano da Exception ma non da RuntimeException) non attivano il rollback per impostazione predefinita, a meno che non siano specificate esplicitamente con rollbackFor.

4

Dove può essere applicata l'annotazione @Transactional?

5

Quale comportamento adotta Propagation.REQUIRES_NEW?

+27 domande da colloquio

Padroneggia Spring Boot per il tuo prossimo colloquio

Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.

Inizia gratis