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

Trabalhado um com DTO

Bom dia galera,

ele tenho uma entidade que tem varias informações e vários relacionamentos @ManyToOne exemplo:

public classs Pessoa {

    private Integer id;
    @ManyToOne
    private Endereco endereco;
    @ManyToOne
    private Contato contato;

    ....
}

Gostaria de criar uma lista de pessoas que eu só vou precisar o ID e do NOME para montar um combobox na view, mas não queria carregar a entidade completa de Pessoa, pois as outras informações eu não vou precisar. Então vou usar um PessoaDTO e o usar o SELECT new da JPQL para criar um DTO de pessoa e montar meu combobox.

A minha dúvida é com relação a arquitetura, vcs acham que eu deveria criar um DAO especifico para criar minhas DTOs ou deveria cria-lo dentro de PessoaDAO?

Obrigado a todos.

2 respostas
solução!

Olá João, tudo bem?

Você pode ter sim só um PessoaDAO e criar os métodos que fazem queries de negócios e criam DTOs. É bem comum ter apenas um DAO e nele ter todos os métodos relacionados a um modelo.

Contudo, já ouvi relatos de pessoas que trabalharam em projetos e tinham DAOs separados por tipos de queries, ou funções. Isso vai da decisão do time. Isso é uma abordagem que separa os DAOs por funcionalidades, porém, pode acrescentar uma complexidade a mais no projeto.

Mas, pessoalmente, não vejo nenhum problema em criar os DTOs dentro de um único DAO. É uma abordagem bem comum de ser encontrada.

Obrigado Yuri esclareceu bastante.