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.