Pessoal, estou fazendo um site com Spring Security, Hibernate e PrimeFaces…
Tem uma página, o qual faço uma consulta a uma tabela, gerando um List para colocalo em um componente PRIMEFACES.
Porem percebi que quando acesso esta página e que ele efetua a consulta, ele faz isso um monte de vez…
A consulta seria:
/* criteria query */ select
this_.codigo as codigo0_0_,
this_1_.ativo as ativo0_0_,
this_1_.email as email0_0_,
this_1_.nome as nome0_0_,
this_1_.senha as senha0_0_,
this_.Estado as Estado2_0_,
this_.abreviacao as abreviacao2_0_,
this_.bairro as bairro2_0_,
this_.cidade as cidade2_0_,
this_.cnpj as cnpj2_0_,
this_.complemento as compleme6_2_0_,
this_.contato as contato2_0_,
this_.dataCadastro as dataCada8_2_0_,
this_.dataValidacao as dataVali9_2_0_,
this_.logradouro as logradouro2_0_,
this_.numero as numero2_0_,
this_.telefone as telefone2_0_,
this_.tipo as tipo2_0_,
this_.validado as validado2_0_,
this_.validador as validador2_0_
from
Instituicao this_
inner join
Usuario this_1_
on this_.codigo=this_1_.codigo
where
this_.validado=?
Hibernate:
/* criteria query */ select
this_.codigo as codigo0_0_,
this_1_.ativo as ativo0_0_,
this_1_.email as email0_0_,
this_1_.nome as nome0_0_,
this_1_.senha as senha0_0_,
this_.Estado as Estado2_0_,
this_.abreviacao as abreviacao2_0_,
this_.bairro as bairro2_0_,
this_.cidade as cidade2_0_,
this_.cnpj as cnpj2_0_,
this_.complemento as compleme6_2_0_,
this_.contato as contato2_0_,
this_.dataCadastro as dataCada8_2_0_,
this_.dataValidacao as dataVali9_2_0_,
this_.logradouro as logradouro2_0_,
this_.numero as numero2_0_,
this_.telefone as telefone2_0_,
this_.tipo as tipo2_0_,
this_.validado as validado2_0_,
this_.validador as validador2_0_
from
Instituicao this_
inner join
Usuario this_1_
on this_.codigo=this_1_.codigo
where
this_.validado=?
O código da pagina seria:
<ui:composition template="/templates/interno.xhtml">
<ui:define name="menu">
<ui:include src="/restrito/admin/menu_administrativo.xhtml" />
</ui:define>
<ui:define name="corpo">
<h1>Usuário: #{usuarioBean.usuarioLogado.nome}</h1>
<p:panel id="instituicoesNaoValidadas" header="Instituições à validar"
toggleable="true" closable="false" toggleSpeed="500" closeSpeed="500"
widgetVar="painelInstituicoes">
<f:facet name="'botoes">
<p:menu>
<p:submenu label="Settings">
<p:menuitem value="Minimizar" url="#" icon="ui-icon-newwin"
onclick="painelInstituicoes.toggle()" />
</p:submenu>
</p:menu>
</f:facet>
<h:form>
<p:dataTable var="instituicao"
value="#{usuarioBean.instituicoesAValidar}" rendered="#{!empty usuarioBean.instituicoesAValidar}">
<p:column headerText="Instituição">
<h:outputText value="#{instituicao.nome}" />
</p:column>
<p:column headerText="Data de Cadastro">
<h:outputText value="#{instituicao.dataCadastro}">
<f:convertDateTime dateStyle="short"/>
</h:outputText>
</p:column>
<p:column headerText="Tipo de instituição">
<h:outputText value="#{instituicao.tipo}" />
</p:column>
<f:facet name="footer">
<h:commandLink value="Validar Instituições" action="/restrito/admin/validacao_instituicao.jsf" />
</f:facet>
</p:dataTable>
</h:form>
<h:outputText value="Não há instituições a serem validadas" rendered="#{empty usuarioBean.instituicoesAValidar}"/>
</p:panel>
</ui:define>
</ui:composition>
E lá dentro, o método no DAO seria:
public List<Instituicao> buscarInstituicoesNaoValidadas() {
List<Instituicao> instituicoes = null;
Criteria criteria = this.sessao.createCriteria(Instituicao.class);
criteria.add(Restrictions.eq("validado", false));
instituicoes = (List<Instituicao>) criteria.list();
return instituicoes;
}
O que está acontecendo??? é normal???
Contei no console do tomcat e efetuou esta mesma consulta 14 vezes, em uma unica visita a página.