Galera,
Existem milhões de tópicos com a mesma dúvida, mas efetuei várias tentativas e nada… Segue meu código:
View:
<p:autoComplete id="auto_complete_pessoa_envolvida"
value="#{pessoaEnvolvidaBean.pessoaFisicaSelecionada}"
completeMethod="#{pessoaEnvolvidaBean.completaNomePessoa}"
minQueryLength="2" queryDelay="600" forceSelection="true"
var="pessoaFisica" itemLabel="#{pessoaFisica.pessoa.nome}"
itemValue="#{pessoaFisica}" size="72"
title="#{msg.aie_tooltip_autocomplete_pessoa}"
converter="pessoaFisicaConverter" />
Converter:
@FacesConverter(forClass = PessoaFisica.class, value="pessoaFisicaConverter")
public class PessoaFisicaConverter implements Converter {
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
if (value != null && value.trim().length() > 0) {
Long codigo = Long.valueOf(value);
try {
PessoaFisicaRN pessoaFisicaRN = new PessoaFisicaRN();
return pessoaFisicaRN.carregar(codigo);
} catch (Exception e) {
throw new ConverterException("Não foi possível encontrar a Pessoa Física de " + value + "." + e.getMessage());
}
}
return null;
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
return String.valueOf(((PessoaFisica) value).getNumero());
}
}
Trecho do MB:
...
public List<PessoaFisica> completaNomePessoa(String query) {
List<PessoaFisica> sugestoes = new ArrayList<PessoaFisica>();
if (query.trim().length() > 0) {
PessoaFisicaRN pessoaFisicaRN = new PessoaFisicaRN();
sugestoes = pessoaFisicaRN.buscarPorNome(query);
}
return sugestoes;
}
...
Obs.:
- Creio que o erro ocorre na fase de validação. Eu pesquiso no autocomplete, traz o registro, mas na hora do submit ocorre o erro.
- O objeto pessoaFisicaSelecionada está sendo instanciado no construtor.
Poderiam me dar uma luz?
Obrigado 