JSF - Comportamento

Pessoal,

Sou novo no JSF, sei que é importante entender o ciclo de vida dele, mas não consigo entender essa situação:

Tenho um objeto Curriculo, no qual eu instancio no construtor do meu MB (Curriculo curriculo = curriculoRN.buscaCurriculoDoCandidato();), bom até aí blz…

No meu XHTML eu faço o binding para os atributos do meu objeto curriculo, um deles é um SelectOneMenu de cargos (value="#{meuBean.curriculo.cargo}"), maravilha… tudo blz…

No XHTML tenho um botão de “Salvar” que nesse momento não faz nada, apenas um System.out.println(curriculo.getCargo)… só para ver se funciona o binding… e realmente está funcionando, então eu preencho o formulário com um cargo e clico no botão “Salvar” nesse momento ele faz uma consulta no BD buscando o cargo que eu preenchi na tela…

Por que ele faz essa consulta se eu já estou com o componente preenchido na tela, tem como não fazer essa consulta extra? Sei que isso tem a ver com o ciclo de vida mas já pesquisei e não encontrei uma solução.

Se alguém puder ajudar eu agradeço

Abs.
Marcelo

Provavelmente teu MB esteja definido como @RequestScoped. Todas as requisições fazem com que o mesmo seja instanciado novamente (cada requisição, uma nova instância). Isso faz com que a consulta seja realizada no banco de dados.

Opa drsmachado, blz?

Cara meu escopo é @ViewScoped

Seria isso um comportamento normal do JSF?

Se for é muito ruim isso não é? ou seja, toda vez que eu persistir um objeto no BD ele vai retornar os campos preenchidos para a tela…

Abs.
Marcelo