Hibernate NamedQuery, funcionamento interno

Pessoal aqui no GUJ tem um guia de boas praticas e dicas de hibernate avançado (que por sinal ficou otimo), o autor é Maurício Linhares de Aragão Junior, que diz:

aqui fica minha duvida, como essas querys sao compiladas no banco ? entendi que isso ficaria como stored procedures no banco, mas abro meu banco e nao vejo nenhuma store procedure la…

alguem sabe como isso funciona ?

abraços

É o seguinte, quando você manda criar um prepared statement no banco de dados, o banco transforma ele numa stored procedure “anônima” que existe apenas dentro da conexão onde o prepared statement tenha sido criado. Você só vai ver isso se fizer debugging no banco de dados pra ver ele chamando as consutlas.

Então, como o Hibernate sempre usa prepared statements, as queries vão ser todas compiladas lá no banco.

A vantagem real de se utilizar named queries é que o Hibernate só precisa compilar elas uma vez (sim, o hibernate compila uma query em HQL/JPA-QL de volta pra SQL) e depois apenas executa elas, diferente de quando você cria um objeto query, que o Hibernate tem que compilar a query cada vez que o objeto é criado.

Ohhh man, mto obrigado mesmo pela atenção.

qdo saem novos artigos / tutos ? hahaha :smiley:

abraçossss