Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

[Dúvida] A anotação @Transactional onde ela deve ficar no controller ou na Service?

A anotação @Transactional onde ela deve ficar no controller ou na Service?

3 respostas
solução!

Olá, Bruno!

O Controller não deve conter regras de negócio, que são responsabilidade do Model no estilo de arquitetura MVC (Model-View-Controller). A responsabilidade do controller é mapear entradas e saídas e direcionar o fluxo para a camada de negócio. Portanto, não deve gerenciar como uma transação em banco de dados irá ocorrer.

Já o Service é uma sub-camada do Model, que pode conter regras de negócio e detalhes de infraestrutura (como transações em Banco de Dados). Se você tiver uma camada com Repository beans que não seja a default do Spring Data, também pode gerenciar as transações nesta camada.

Olá,

Tive a mesma dúvida do Bruno, pois no curso tem vários métodos nos Controllers anotados com @Transactional.

Então o correto é mudar esta anotação para os métodos correspondentes nas classes service ?

Obrigada, Andréa

Sim pelo o que eu entendi a transação deve ser na Service