acessando o retorno de uma NativeQuery não mapeada com EclipseLink [RESOLVIDO] :)  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
root_
JavaGuru
[Avatar]

Membro desde: 05/09/2006 15:46:19
Mensagens: 206
Localização: Gurupi - Tocantins
Offline

Pessoal... sem meias palavras:


Até ai tudo bem, agora, como percorrer este "retornoQuery"? já tentei de muitas formas mas todas deram errado.
Obs: não tenho nenhuma classe para mapear este retorno, até porque é um resultado vindo de um agrupamento( GROUP BY ), senão seria mamão com açúcar!

Conto com a colaboração dos experts em eclipseLink e por favor, sem repostas fúteis só para ganhar pontos para subir de nível no fórum!

Abrçs....

This message was edited 1 time. Last update was at 26/08/2011 13:59:25


Rogério Milhomens de Queiroz
Agile - Consultoria em Tecnologia da Informação!
http://www.agilecti.com.br
Dataview - Inteligência em Tecnologia!
http://www.dataview.com.br
[Email] [WWW] [MSN]
juliannoms
What is classpath?

Membro desde: 16/04/2010 10:04:32
Mensagens: 7
Offline

E dae root_, blz?

Se eu não me engano essa consulta retorna uma List<Object>.
Faz cast pro tipo que vc espera e já era!!!

[]'s
[MSN]
evefuji
GUJ Ranger

Membro desde: 14/12/2007 22:37:17
Mensagens: 753
Offline

acho que esse tópico te ajuda:

http://www.guj.com.br/java/124559-agrupamento-max-e-sum-com-jpa

E retorna um array de objetos mesmo.
juliannoms
What is classpath?

Membro desde: 16/04/2010 10:04:32
Mensagens: 7
Offline

Completando...

No seu caso retorna um List<Object[]>.
Existe a possibilidade de vc criar um objeto não mapeado e usá-lo.

List<Resultado>

e na consulta....

Query query = entityManager.createNativeQuery("SELECT new seupacote.Resultado(parametro1,parametro2) from ...);


sua classe Resultado tem que ter um construtor com os parametros do select...

[]´s

This message was edited 2 times. Last update was at 25/08/2011 16:17:17

[MSN]
root_
JavaGuru
[Avatar]

Membro desde: 05/09/2006 15:46:19
Mensagens: 206
Localização: Gurupi - Tocantins
Offline

juliannoms wrote:E dae root_, blz?

Se eu não me engano essa consulta retorna uma List<Object>.
Faz cast pro tipo que vc espera e já era!!!

[]'s


Mano.. cast concerteza foi a primeira das tentativas....
[Email] [WWW] [MSN]
root_
JavaGuru
[Avatar]

Membro desde: 05/09/2006 15:46:19
Mensagens: 206
Localização: Gurupi - Tocantins
Offline

evefuji wrote:acho que esse tópico te ajuda:

http://www.guj.com.br/java/124559-agrupamento-max-e-sum-com-jpa

E retorna um array de objetos mesmo.


ever...
Melhor dica.. caso seja algo bem random.. até porque a classe com a qual eu faria o CAST não tem anotação JPA...
então... salve ao método unwarp do entityManager.

segue a solução:


Dai pra frente simples... que foi a criação de um relatório Gráfico com jasperreports. passando uma JrBeanDataSource como parâmetro para o relatório
Alias.. a minha solução.

Obrigado pelas colaborações....

Rogério Milhomens de Queiroz
Agile - Consultoria em Tecnologia da Informação!
http://www.agilecti.com.br
Dataview - Inteligência em Tecnologia!
http://www.dataview.com.br
[Email] [WWW] [MSN]
evefuji
GUJ Ranger

Membro desde: 14/12/2007 22:37:17
Mensagens: 753
Offline

Gostei do método unwarp, vou lembrar para quando eu estiver precisando.

Edit: Não sabia que não tinha mapeada a tabela em uma classe. Mas gostei da sua solução.

This message was edited 1 time. Last update was at 26/08/2011 15:00:46

juliannoms
What is classpath?

Membro desde: 16/04/2010 10:04:32
Mensagens: 7
Offline

Cara, eu não conhecia essa solução que vc deu. Pode ser interessante pra alguns casos sim, mas não pra esse!



Porém, o caso é criar um relatório...



Eu acho que dessa forma fica mais "bonito" de se fazer...
Se vc tá usando jasper, pode fazer um método stático que retorne essa lista dentro de um JRBeanCollection e chamar o método do relatório...

Espero ter ajudado!
Gostei da dica do unwarp.

T+

Julianno Martins Silva
Analista de Sistemas
[MSN]
root_
JavaGuru
[Avatar]

Membro desde: 05/09/2006 15:46:19
Mensagens: 206
Localização: Gurupi - Tocantins
Offline

juliannoms ... ótima idéia... ao invéz de eu fazer um cast para o objeto Bean em questão, apenas pegar um array[] mesmo e depois ir realizando os casts para os tipos dos campos do Bean...
Excelente amigo! tb funciona!

Rogério Milhomens de Queiroz
Agile - Consultoria em Tecnologia da Informação!
http://www.agilecti.com.br
Dataview - Inteligência em Tecnologia!
http://www.dataview.com.br
[Email] [WWW] [MSN]
 
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team