[RESOLVIDO]Ajuda com AutoComplete

Galera, alguém poderia me ajudar a implementar o meu AutoComplete a usar o nome e o sobrenome como parâmetro de busca?
Hoje faço utilizando somente o nome, gostaria de estender e filtrar tb pelo sobrenome:

view

<p:autoComplete value="#{lancamentoBean.clienteSelecionado}" completeMethod="#{lancamentoBean.completecliente}" var="cliente" itemValue="#{cliente}" itemLabel="#{cliente.nome} #{cliente.sobrenome}" converter="Converter" size="50" onkeyup="this.value = this.value.toUpperCase();"/>

Bean:

[code]public List completecliente(String query) {

ELContext context = FacesContext.getCurrentInstance().getELContext();
this.entityManager = (EntityManager) FacesContext.getCurrentInstance().getApplication().getELResolver().getValue(context, null, "entityManager");
	
ControleBoletoRepository repository = new ControleBoletoRepository(this.entityManager);
	
List<Cliente> results = new ArrayList<Cliente>();
	
if (clientes.isEmpty()){
	
	this.clientes = repository.clientes("A");
	
}

for(Cliente c : clientes){

	if (c.getNome().startsWith(query)){
		System.out.println(""+c.getNome()+" - "+c.getId()+"");
		results.add(c);
			
	}

}
	
  return results; 

}[/code]

Oq você poderia fazer era utilizar o método index of da string e achar o primeiro " ". O que vier depois é o sobrenome, com esse resultado faça a mesma verificação feita para o nome.

Legal, vou testar …

Bem, resolvi assim:

<h:outputText value="Nome: "/> <p:autoComplete value="#{lancamentoBean.clienteSelecionado}" completeMethod="#{lancamentoBean.completecliente}" var="cliente" itemValue="#{cliente}" itemLabel="#{cliente.nome} #{cliente.sobrenome}" converter="Converter" size="50" onkeyup="this.value = this.value.toUpperCase();"> <p:ajax event="blur" update="formLancamento" listener="#{lancamentoBean.buscaSelecionado}" /> </p:autoComplete>

[code]public List completecliente(String query) {

ELContext context = FacesContext.getCurrentInstance().getELContext();
this.entityManager = (EntityManager) FacesContext.getCurrentInstance().getApplication().getELResolver().getValue(context, null, "entityManager");
	
ControleBoletoRepository repository = new ControleBoletoRepository(this.entityManager);
	
List<Cliente> results = new ArrayList<Cliente>();
	
if (clientes.isEmpty()){
	
	this.clientes = repository.clientes("A");
	
}

for(Cliente c : clientes){
	String nome = c.getNome()+" "+c.getSobrenome(); 
	long id = c.getId();
	if (nome.startsWith(query)){
		results.add(c);
	}

}
	
  return results; 

}[/code]

[code]public Cliente buscaSelecionado(){
try {
ELContext elContext = FacesContext.getCurrentInstance().getELContext();
this.entityManager = (EntityManager) FacesContext.getCurrentInstance().getApplication().getELResolver().getValue(elContext, null, “entityManager”);
ControleBoletoRepository boletoRepository = new ControleBoletoRepository(this.entityManager);
cliente = boletoRepository.consultaPorId(clienteSelecionado.getId());

	if (cliente.getId() > 0 || cliente.getId() != null){
		
		lancamento.setCliente(cliente);
		
	}else {
		FacesContext.getCurrentInstance().addMessage("consulta:id", new FacesMessage("CLIENTE NÃO CADASTRADO"));
	}
		
} catch (Exception e) {
	// TODO: handle exception
}
return cliente;

}[/code]