JSF metodo listar executando 7 vezes

Pessoal estou fazendo um consulta e quando do um debug para verificar a query a consulta esta sendo realizada 7 vezes. Porque isso acontece ? oque tem de errado. É o ciclo de vida do JSF ? isso so está acontecendo no metodo listar, pesquisar

Exemplo:

public Unidade pesquisar(Unidade unidade) {
        Unidade unidade1 = unidadeDAO.pesquisar(unidade);
        return unidade1;
}

 public Unidade pesquisar(Unidade unidade1) {
        ResultSet rst = null;
        try {
            query = "SELECT \"CNPJ_UNIDADE_CFFTB002\", \"GP_UND_CFFTB002\" "
                    + "FROM \"CFFTB002_UNIDADES\" WHERE \"CNPJ_UNIDADE_CFFTB002\" = " + unidade1.getCnpj_unidade() + " ";
            
            logger.debug(query);   // quando da um debug mostra 7 vezes essa query ?

            rst = stmt.executeQuery(query);

            while (rst.next()) {
                Unidade unidade = new Unidade();
                unidade.setCnpj_unidade(rst.getInt(1));
                unidade.setGp_unidade(rst.getString(2));

                return unidade;
            }
            rst.close();

        } catch (SQLException excecao) {
            logger.error("Erro ao tentar pesquisar unidades: " + excecao);
            try {
                rst.close();
            } catch (Exception ex) {
                logger.error("Erro ao tentar fechar ResulSet pesquisar unidades: " + ex);
            }
        }
        return null;
    }

Sim é normal apesar de não gostar disso.

Cara… isso é muito ruim, quando o cliente vai olha o codigo sempre reclama que $$#%# é essa e diz que o codigo ta errado. E pra nós tambem porque fica jogando duplicados no logger.

verifica se seu metodo pesquisar não esta sendo chamado
por nenhum get do managed bean.

o escopo do seu managed bean esta como session ou request?
como session ele executa apenas uma vez

Esse infelizmente é um comportamento comum do JSF,o que vc pode fazer eh condicionar o método para só buscar no banco quando a lista for nula:

public List<Lista>getLista(){
  if(lista==null)buscaLista();
}