Pessoal, estava numa pequena discussão aqui no trabalho e estávamos conversando sobre a real necessidade de retornar objetos gerenciados no DAO ou não. Quais as vantagens, desvantagens, etc. Havia uma situação aqui em que um objeto gerenciado era retornado por um método de uma classe DAO, mas ao chegar na apresentação, somente dois atributos desse objeto eram utilizados. Nessa discussão, surgiram algumas perguntas:
Será mesmo necessário alocar aquele objeto inteiro na memória uma vez que utilizaremos somente dois atributos dele?
Retornar o objeto inteiro não predispõe outras camadas a utilizar os métodos gets() gerando mais selects desnecessários que poderiam ter sido feitos todos de uma vez só no DAO?
Não é melhor retornar uma lista de arrays de Objects contendo somente as informações que serão utilizadas de fato?
Por outro lado, se eu vou retornar somente o que é necessário naquele momento e não vou utilizar os benefícios do ORM, por que estou utilizando JPA então?