Bom dia!
Gostaria de saber como poderia consultar no hibernate quais tabelas existem no banco, descrição dos campos, count(), sum() …
E qual o tipo de retorno dessas consultas.
ex.: "count(*) from produto group by x " //// qual o objeto que recebiria isso ???
Grato.
Qdo você faz uma consulta que não retorna um objeto diretamente (exemplo: select c from Clientes c), o hibernate retorna uma array de objetos.
Exemplo:
“select c.codigo, c.nome from Clientes c”
Nesse caso, ele vai retornar uma array de object[].
Não sei como se faz pelo Hibernate, mas é possível ler alguns dos metadados do banco via JDBC. O método Connection.getMetaData() é um bom local para começar:
http://java.sun.com/javase/6/docs/api/java/sql/Connection.html#getMetaData()
count() retorna BigInteger.
sum() nao sei, provavelmente BigDecimal.
Consegui achar na documentação do Hibernate esse exemplo:
Iterator results = em.createQuery(“select [color=red]cat.color, min(cat.birthdate), count(cat)[/color] from Cat cat group by cat.color”).getResultList().iterator();
while ( results.hasNext() ) {
Object[] row = results.next();
Color type = (Color) row[0];
Date oldest = (Date) row[1];
Integer count = (Integer) row[2];
…
}
pelo que vi, não tem mistério nenhum … dificil é encontrar a informação.
vlw.