Senior
Que fournit l'annotation @Transactional et quels sont ses attributs?
sobes.tech IA
Réponse de l'IA
L'annotation @Transactional en Java est utilisée pour gérer les transactions au niveau des méthodes ou des classes. Elle garantit que toutes les opérations à l'intérieur de la transaction seront exécutées de manière atomique : soit toutes réussissent, soit en cas d'erreur, un rollback sera effectué.
Principaux attributs de @Transactional :
- propagation — définit le comportement de la transaction lorsqu'elle est appelée depuis un autre contexte transactionnel (par exemple, REQUIRED, REQUIRES_NEW).
- isolation — niveau d'isolation de la transaction (READ_COMMITTED, SERIALIZABLE, etc.), influence la visibilité des données.
- timeout — temps d'attente avant d'interrompre la transaction.
- readOnly — indique que la transaction est en lecture seule, ce qui peut optimiser l'accès à la base de données.
- rollbackFor / noRollbackFor — classes d'exceptions qui entraîneront ou non un rollback.
Exemple :
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED, timeout = 30, readOnly = false)
public void updateData() {
// logique métier
}