Pergunta

Eu tenho um certo cenário em que inserções e atualizações são feitas em várias tabelas com base em algumas restrições. Portanto, é natural usar o escopo da transação para esses cenários. Agora, tenho uma camada de repositório e uma camada de serviço. A camada de serviço medeia o repositório e a interface do usuário e é persistente ignorante. Agora estou confuso onde usar as transações em serviço ou em camadas de repositório. Não estou usando nenhum ORMS. Também vi pessoas defendendo sobre a unidade de padrão de trabalho para esses cenários. Existem exemplos sobre a unidade de padrão de trabalho que se adapta aos meus cenários atuais, todos os exemplos que vi estão usando ORMs.

Obrigado,

Foi útil?

Solução

Isso dependerá do seu sistema, é claro, mas normalmente eu faria na camada de serviço. Especialmente se os métodos da camada de serviço chamarem vários métodos de repositório de grão fino e esperam que todos se comprometam ou com toda a reversão.

Outras dicas

Algumas perguntas que podem ajudar a responder a isso.

Qual camada entende os requisitos transacionais? Qual é a granularidade da sua interface de repositório?

No meu mundo, tendemos a ter operações de persistência de refrigerante, inserir, atualizar, excluir. e depois os componha na camada de serviço. Portanto, nesse ambiente, parece -me óbvio que é a camada de serviço que entende o escopo transacional.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top