Como eu posso executar um consulta, utilizando o EntityManager do Hibernate?
Por exemplo:
O meu código está assim:
[code]
Map<String, Integer> map = new HashMap<String, Integer>();
String sql = “select (count(id) / 5) as “total1”, count(id) from tableA;”;
EntityManager em = this.getEntityManager();
try {
map = em.createNativeQuery(sql, HashMap.class).getResultList();
} finnally {
em.close();
}
return map;[/code]
Sendo que eu gostaria que o nome do campo fosse a key do map. Teria como fazer isso?
[quote=Jedi_FeniX]Como eu posso executar um consulta, utilizando o EntityManager do Hibernate?
Por exemplo:
O meu código está assim:
[code]
Map<String, Integer> map = new HashMap<String, Integer>();
String sql = “select (count(id) / 5) as “total1”, count(id) from tableA;”;
EntityManager em = this.getEntityManager();
try {
map = em.createNativeQuery(sql, HashMap.class).getResultList();
} finnally {
em.close();
}
return map;[/code]
Sendo que eu gostaria que o nome do campo fosse a key do map. Teria como fazer isso?[/quote]
Olá…
Faz assim:
Dá uma olhadinha nesse link aqui, paginas 6 e 7:
http://www.metaarchit.com/hibernate_tutorials/Hibernate%20Tutorial%2009.pdf
[]'s
JL
Não entendi muito bem a sua resposta poderia explicar melhor? Lembrando que eu estou querendo rodar um sql nativo.
E corrigindo a query que quero rodar é esta:
É uma procedure que retorna dos campos integers.
[quote=Jedi_FeniX]Não entendi muito bem a sua resposta poderia explicar melhor? Lembrando que eu estou querendo rodar um sql nativo.
E corrigindo a query que quero rodar é esta:
É uma procedure que retorna dos campos integers.[/quote]
Certo, desculpe a falta de explicação.
Sobre o retorno de querys em forma de maps do Hibernate, basta apenas que você utilize assim:
Onde new map indica que o retorno é um mapa, objeto.atributo as alias1 indica o atributo do objeto como valor e o alias1 com chave do valor no mapa.
O erro em minha resposta foi ter lido em.createQuery ao invez de em.createNativeQuery
Não sei bem se de um retorno de uma procedure o hibernate pode retornar um mapa.
Em uma consulta rapida não consegui nem um resultado que atenda…
[]'s
JL
Estou querendo fazer a seguinte query:
Agora usando createQuery…
Mas quando tento pegar o List desta query, recebo o seguinte erro de type casting
[quote]java.lang.ClassCastException: [Ljava.lang.Object;
[/quote]
O meu código está assim:
try {
List<User> list = (List<User>) em.createQuery("nameQuery").getResultList();
} finally {
em.close()
}