Sobes.tech
Junior — Middle

Como iniciar uma nova transação dentro de um método anotado como @Service?

sobes.tech IA

Resposta da IA

No Spring, para iniciar uma nova transação dentro de um método anotado como @Service, usa-se a anotação @Transactional com o parâmetro propagation = Propagation.REQUIRES_NEW. Isso significa que, ao chamar esse método, uma nova transação será criada, mesmo que já exista uma transação ativa.

Exemplo:

@Service
public class MyService {

    @Transactional(propagation = Propagation.REQUIRES_NEW)
    public void newTransactionMethod() {
        // código executado numa nova transação
    }
}

Se o método for chamado de outro método que já está numa transação, a transação atual será suspensa e uma nova será iniciada. Isso é útil quando se deseja realizar uma operação independente com uma transação separada.