Hibernate / JPA- Retorno de consultas

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.