2
respostas

[Dúvida] Criação do Usuario e Id criado pela database na clean architecture

Seguindo o padrão de uma Spring Rest Controller, um método para criar uma entidade no sistema é o Http 201, que retorna os dados da entidade juntamente com um identificador único da entidade criada.

Na implementação da Clean Archirecture não foi adicionado o identificador do banco de dados nas Entities do domínio.

Neste cenário, para continuar usando o padrão Spring de devolver o identificador único da entidade criada usando arquitetura limpa, qual abordagem seria a mais correta?

Adicionar o Id do banco de dados à entidade de negocio.

Utilizar algum identificador natural da entidade (CPF por exemplo).

Realizar um outra consulta no banco para retornar o Id.

Alguma outra que não pensei :-)

2 respostas

Oi, boa tarde, tudo bem? Cara, comentando aqui só pra dar um up na sua pergunta e acompanhar essa dúvida que eu tenho também! Muito interessante sua pergunta. Mas só pra ver se estamos com a mesma dúvida: quando você se refere a entidade de domínio, seria as classe que modelam a aplicação que geralmente ficam em um pacote model. Certo? Já classes de persistência seriam as classes que tem o @Entity?

Porque se for isso, na classe de persistência vai ter um atributo id e você poderia fazer algo desse tipo:

return entidadeRepository.save(entidade).getId();

sacou?

depois era só mapear esse id para o dto de retorno do controller.

Mas foi só um palpite mesmo, vou ir acompanhando esse post para ver se algum instrutor ou dev da Alura responde com mais certeza.

Olá, sim essa solução que colocaste é, na minha opinião, bem obivia. Contudo a professora não adicionou o campo id no modelo de negócio por isso pensei que essa adição poderia quebrar alguma regra do clean architecture.