To usando o JPA aqui num sisteminha. Bem interessante.
Acontece que tenho uma tela de relatório consolidado, que mostram dados que não refletem necessariamente uma entidade persistente do meu sistema.
Como vocês fazem pra buscar os dados desse relatório? Via SQL/JDBC normal? Ou há alguma forma de mapear um DTO para isso?
Eu vi isso aqui num artigo da Oracle:
[code]@Entity @NamedQueries(@NamedQuery(name=“generateReport”,
query=" SELECT NEW com.ssg.article.ReportDTO(p.name, SUM(pen.amount))
FROM Party p LEFT JOIN p.penalties pen GROUP BY p.name"") )
Não teria os atributos e nem mesmo deveria ter. A solução que eu uso para estes problemas é criar um classe para transportar os dados, o que eu não chamo de DTO, pois ela não esta ai para evitar que os objetos distribuidos fiquem se referenciando no momento do marshal e sim para transferir, pela rede ou não, dados extras, como contagem e etc, ao que existe no nos meu objetos percistentes.
Gerar arrays é uma solução, mas se vc tiver que montar um relatorio complexo, que tem por ex linhas e colunas dinamicas, utilizar arrays vai deixar o trabalho inlegivel no final. (no meu ponto de vista)
Utilizar objetos com nomes significativos, neste e em todos os casos, facilita muito a manutenção do sistema.