Junior — Middle
Como é que se pode modificar a funcionalidade da anotação @Transactional no Spring para alcançar os resultados desejados?
sobes.tech IA
Resposta da IA
A anotação @Transactional no Spring gere transações ao nível de métodos ou classes. Para modificar o seu comportamento, pode usar os parâmetros da própria anotação ou criar aspetos personalizados.
Principais formas de modificação:
-
Parâmetros da anotação:
propagation— define o comportamento de transações aninhadas.isolation— nível de isolamento das transações.timeout— tempo de espera para a transação.readOnly— otimização para operações apenas de leitura.rollbackForenoRollbackFor— indicam quais exceções devem fazer a transação reverter ou não.
-
Criação de um aspeto próprio: Pode escrever um aspeto usando Spring AOP, que interceptará chamadas de métodos e adicionará lógica adicional em torno das transações.
Exemplo de uso de parâmetros:
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
public void someMethod() {
// código
}