Opa Douglas, tudo bem?
Vai depender muito de quem depende mais da informação, por exemplo, vamos supor que temos duas tabelas
E a gente precise fazer um join entre Produto x Categoria, neste caso, faz mais sentido que dentro do ProdutoDAO
tenha um método listarComCategoria
, que faça o join entre as tabelas
Acredito que na maioria dos exemplos, teremos uma entidade que precisa mais dessa informação, ou que é complementar a ela, mas pode existir caso onde faça sentido que cada DAO tenha um método que traga informações diferentes com o mesmo inner join
, e você pode querer abstrair isso para uma terceira classe que faça esse JOIN, mas na maioria das vezes acredito que faz mais sentido a primeira alternativa :)
Abraços e Bons Estudos!