Hibernate: duvidas sobre SQL x HQL

Ola,

Estou com o Hibernate 2.1.3.

Estou com as segtes duvidas:

  1. Como eu posso saber o SQL que o Hibernate gera?
  2. Teria como otimizar o SQL/HQL, supondo que o Hibernate gerasse algo lento?
  3. Supondo que tenho uma classe Pessoa N - 1 Municipio N - 1 Estado
    Se eu faco um HQL como este:
    “Select T1 From Pessoa T1”
    ou seja, quero pegar todos os registros e campos de Pessoa,
    é a mesma coisa do SQL:
    “Select T1., T2., T3.* From Pessoa T1, Municipio T2, Estado T3,
    Where T1.idMunicipio = T2.idMunicipio And T2.idEstado = T3.idEstado”
    ???
    Teria como otimizar mais este HQL?
    É claro que normalmente usamos filtros, mas eu imaginei uma situacao
    onde eu quisesse todos os registros, simplesmente este HQL traz o
    banco de dados inteiro?
  4. Existe alguma ferramenta cliente onde possamos executar testes de
    HQLs, como fazemos com ferramentas IBConsole (IB/FB), MySQLFront,
    MSSQL Query Analyzer, etc, para o Hibernate?
  5. No final das contas o HQL acaba sendo parecido com o SQL, nos comandos
    de SELECT, apenas “tentando” ser uma linguagem de consultas de objetos.
    É essa mesmo a ideia?
  1. No log aparece a query que ele gera.

  2. Tem como executar uma query usando o método createSQLQuery da session. http://www.hibernate.org/hib_docs/reference/en/html/manipulatingdata.html#manipulatingdata-nativesql

  3. Não entendi muito bem a pergunta. Mas se o Municipio e Estado forem foreign key, i Hibernate gera a query fazendo o join nas tabelas e retornando todos os dados necessários.

  4. Não que eu saiba.

  5. Sim

[]'s

Quanto a 4 questão, existem algumas ferramentas para rodar o HQL… De uma olhada no site do Hibernate na parte de Related Projects… Lá vc encontra algumas opções como o Hibern8IDE e alguns plugins para o eclipse como o Hibernator…

Fallow