Estou com uma dúvida, tenho uma aplicação em JSF com Hibernate, bem simples, um CRUD, e qndo eu chamo meu o método do meu ManagedBean de listar, essa instrução é feita 7 vezes qndo a página é redenrizada, ou seja, são feitos 7 selects no banco de dados, gostaria de saber qual é o motivo disso, se isso eh realmente uma falha do JSF.
Segue o pedaço do código:
Meu ManagedBean
public class FornecedorHandler {
private Fornecedor fornecedor = new Fornecedor();
public Fornecedor getFornecedor() {
return fornecedor;
}
public List<Fornecedor> getFornecedores() {
System.out.println("#Listando Fornecedores:"); // Essa instrução é executada 7 vezes qndo o jsf é renderizado
GenericDao<Fornecedor> dao = new GenericDao<Fornecedor>(SessionFactories.currentSession(), Fornecedor.class);
return dao.list();
}
public String salva() {
System.out.println("Adicionando: " + fornecedor.getNome());
GenericDao<Fornecedor> dao = new GenericDao<Fornecedor>(
SessionFactories.currentSession(), Fornecedor.class);
dao.merge(fornecedor);
this.fornecedor = new Fornecedor();
return "sucesso";
}
// outros metodos....
}
// Jsp para listar
<h:dataTable value="#{fornecedorHandler.fornecedores}" var="f" rendered="#{not empty fornecedorHandler.fornecedores}" >
<h:column>
<f:facet name="header"><h:outputText value="ID"/></f:facet>
<h:outputText value="#{f.id}"/>
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="Nome"/></f:facet>
<h:outputText value="#{f.nome}"/>
</h:column>
</h:dataTable>
Obrigado,
abs
Lennon