Boa noite
Estou tendo que analisar o cache dos SQL gerados pelo JPA/Hibernate, estou trabalhando em um sistema onde a maioria das consultas são geradas através do createQuery ou createNamedQuery da JPA (EntityManager).
Analisando o log de execução do hibernate ele faz os seguintes procedimentos:
Ao iniciar o EntityManagerFactory ele analisa todas as Entitys que possuem as anotações de NamedQuery e cria os respectivos SQL;
Ao chamar os métodos que trabalham com o método createQuery, aparentemente ele faz o mesmo processo da NamedQuery, só que ao invés de gerar o SQL na criação do EntityManagerFactory, ele o faz assim que o método é chamado pela 1º vez dentro do sistema.
Após os processos acima, analisando o log de execução, ao chamar algum método que execute um NamedQuery ou invoca um createQuery, o Hibernate não analisa novamente a Entity e já executa o SQL, aparentemente ele já tem o mesmo carregado em mémoria.
Minha dúvida é se o Hibernate já faz esse tipo de cache de SQL por padrão (seja por HQL em métodos ou por NamedQuery), ou é necessário alguma configuração extra ?
Obrigado.
This message was edited 1 time. Last update was at 31/01/2012 21:29:34
|