Dúvida com Autcomplete do PrimeFaces

Irmão, você foi um enviado de Deus pra mim… Resolvi, muitíssimo obrigado.

Diego, apesar de funcionar, está o.k. agora, mas ao implementar o construtor, perdi a minha listagem…
ao invocar o método, parece "colidir"os nomes dos atributos e trazer uma lista vazia…

O que recomenda fazer?

Hum … manda os códigos pra mim, vou montar aqui e analisar pra te ajudar …
diegoadricandido23@gmail.com

Estou fazendo isso agora, Diego.

Evento Bean.

[code]package br.com.managedbeans;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.faces.bean.ManagedBean;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.persistence.EntityManager;
import javax.servlet.http.HttpServletRequest;

import br.com.modelo.Evento;
import br.com.repository.EventoRepository;

@ManagedBean
public class EventoBean {

private Evento evento = new Evento();
private List<Evento> eventos;

public EventoBean() {
	evento = new Evento();
	eventos = new ArrayList<Evento>();
}

public void adiciona() {
	EntityManager manager = this.getManager();
	EventoRepository repository = new EventoRepository(manager);
	if (this.evento.getId() == null) {
		repository.adiciona(this.evento);
	} else {
		repository.atualiza(this.evento);
	}
	this.evento = new Evento();
	this.evento = null;
}

public void preparaAlteracao() {
	Map<String, String> params = FacesContext.getCurrentInstance()
			.getExternalContext().getRequestParameterMap();
	Long id = Long.parseLong(params.get("id"));
	EntityManager manager = this.getManager();
	EventoRepository repository = new EventoRepository(manager);
	this.evento = repository.procura(id);
}

public void remove() {
	Map<String, String> params = FacesContext.getCurrentInstance()
			.getExternalContext().getRequestParameterMap();
	Long id = Long.parseLong(params.get("id"));
	EntityManager manager = this.getManager();
	EventoRepository repository = new EventoRepository(manager);
	repository.remove(id);
	this.evento = null;
}

public List<Evento> completeEvento(String query) {

	EventoRepository repository = new EventoRepository(getManager());
	List<Evento> results = new ArrayList<Evento>();
	if (eventos.isEmpty()) {
		this.eventos = repository.complete();
	}
	for (Evento e : eventos) {
		if (e.getEvento().startsWith(query)) {
			results.add(e);
		}
	}
	return results;
}

public List<Evento> getEventos() {
	if (this.eventos == null) {
		EntityManager manager = this.getManager();
		EventoRepository repository = new EventoRepository(manager);
		this.eventos = repository.getLista();
	}
	return this.eventos;

}

private EntityManager getManager() {
	FacesContext fc = FacesContext.getCurrentInstance();
	ExternalContext ec = fc.getExternalContext();
	HttpServletRequest request = (HttpServletRequest) ec.getRequest();
	EntityManager manager = (EntityManager) request
			.getAttribute("EntityManager");
	return manager;
}

private Evento eventoSelecionado;

public Evento getEvento() {
	return evento;
}

public void setEvento(Evento evento) {
	this.evento = evento;
}

public Evento getEventoSelecionado() {
	return eventoSelecionado;
}

public void setEventoSelecionado(Evento eventoSelecionado) {
	this.eventoSelecionado = eventoSelecionado;
}

public void setEventos(List<Evento> eventos) {
	this.eventos = eventos;
}

}
[/code]

Evento Repository.

[code]package br.com.repository;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import br.com.modelo.Evento;

public class EventoRepository {
private EntityManager manager;

public EventoRepository(EntityManager manager) {
	this.manager = manager;
}

public void adiciona(Evento evento) {
	this.manager.persist(evento);
}

public void remove(long id) {
	Evento evento = this.procura(id);
	this.manager.remove(evento);
}

public Evento atualiza(Evento evento) {
	return this.manager.merge(evento);
}

public Evento procura(Long id) {
	return this.manager.find(Evento.class, id);
}

@SuppressWarnings("unchecked")
public List<Evento> getLista() {
	Query query = this.manager.createQuery("SELECT e FROM Evento e");
	return query.getResultList();
}

@SuppressWarnings("unchecked")
public List<Evento> complete() {
	Query query = this.manager.createQuery("Select e From Evento as e");

	return query.getResultList();

}

}
[/code]

Página que lista.

[code]<?xml version=“1.0” encoding=“ISO-8859-1”?>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
http://www.w3.org/TR/html4/loose.dtd”>
<html xmlns=“http://www.w3.org/1999/xhtml
xmlns:h=“http://java.sun.com/jsf/html
xmlns:f=“http://java.sun.com/jsf/core
xmlns:ui=“http://java.sun.com/jsf/facelets
xmlns:p=“http://primefaces.org/ui”>

<h:head>
<title>Lista de registros</title>
</h:head>
<body>
<ui:composition template="…/templates/template.xhtml">
<ui:define name=“content”>

		&lt;p:dataTable var="evento" value="#{eventoBean.eventos}"
			paginator="true" rows="2"&gt;

			&lt;h:column&gt;
				&lt;f:facet name="header"&gt;
					&lt;h:outputText value="Id" /&gt;
				&lt;/f:facet&gt; #{evento.id}
				 &lt;/h:column&gt;

			&lt;f:facet name="header"&gt;Lista de Eventos&lt;/f:facet&gt;
			&lt;p:column&gt;
				&lt;f:facet name="header"&gt;
					&lt;h:outputText value="Nome do evento" /&gt;
				&lt;/f:facet&gt;
				&lt;h:outputText value="#{evento.evento}" /&gt;
			&lt;/p:column&gt;
			&lt;p:column&gt;
				&lt;f:facet name="header"&gt;
					&lt;h:outputText value="Data do evento" /&gt;
				&lt;/f:facet&gt;
				&lt;h:outputText value="#{evento.dataEvento}" /&gt;
			&lt;/p:column&gt;
			&lt;p:column&gt;
				&lt;f:facet name="header"&gt;
					&lt;h:outputText value="opera&#65533;&#65533;es" /&gt;
				&lt;/f:facet&gt;

				&lt;f:ajax event="click" render="@form"
					listener="#{eventoBean.preparaAlteracao}"&gt;
					&lt;h:commandLink&gt;
						&lt;f:param name="id" value="#{evento.id}" /&gt;
		Alterar
		&lt;/h:commandLink&gt;
				&lt;/f:ajax&gt;
			&lt;/p:column&gt;
		&lt;/p:dataTable&gt;
	&lt;/ui:define&gt;
&lt;/ui:composition&gt;

</body>
</html>[/code]

Está aí.

Esta tbm no seu e-mail.