tenho minha pagina que precisa popular um <p:selectOneMenu> com uma lista com valores do banco.
<ui:composition 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”>
<f:metadata>
<f:event listener="#{cadastroClienteBean.init}" type="preRenderView" />
</f:metadata>
<h:outputStylesheet library="css" name="sistema.css" />
<p:panelGrid columns="2"
style="width:30%; text-align: left; margin: 0 auto; margin-top: 20px; "
columnClasses="rotulo, campo, rotulo, campo">
<p:outputLabel value="Nome Vendedor" for="vendedor" />
<p:selectOneMenu style="width: 230px" id="vendedor">
<f:selectItem itemLabel="Selecione o Vendedor" />
<f:selectItems value="#{cadastroClienteBean.listaVendedores}"
var="vendedor" itemValue="#{vendedor}" />
</p:selectOneMenu>
Classe Vendedor
@Entity
@Table(name = "vendedor")
public class Vendedor implements Serializable {
private static final long serialVersionUID = 1L;
private int id;
private String nome;
@Id
@GeneratedValue
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Column(nullable = false, length = 60)
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
classe producers
@ApplicationScoped
public class EntityManagerProducer {
private EntityManagerFactory factory;
public EntityManagerProducer() {
factory = Persistence.createEntityManagerFactory("PedidoPU");
}
@Produces
@RequestScoped
public EntityManager createEntityManager() {
return factory.createEntityManager();
}
public void closeEntityManager(@Disposes EntityManager manager) {
manager.close();
}
}
classe bean
@Named
@ViewScoped
public class CadastroClienteBean implements Serializable{
private static final long serialVersionUID = 1L;
@Inject
private EntityManager manager;
private Cliente cliente = new Cliente();
private List<Vendedor> listaVendedores;
public CadastroClienteBean() {
cliente = new Cliente();
}
public void salvar() {
}
public void init() {
System.out.println("iniciando...");
listaVendedores = manager.createQuery("from Vendedor", Vendedor.class).getResultList();
System.out.println(listaVendedores);
}
public Cliente getCliente() {
return cliente;
}
public List<Vendedor> getListaVendedores() {
return listaVendedores;
}
}
Ele faz a pesquisa no banco trazendos os dados, porem nao sei se está trazendo da forma correta. Pois os valores são retornados assim
iniciando…
Hibernate: **
** select
** vendedor0_.id as id1_2_,**
** vendedor0_.nome as nome2_2_ **
** from**
** vendedor vendedor0_**
[com.honda.model.Vendedor@62cc5de5, com.honda.model.Vendedor@4c93e646, com.honda.model.Vendedor@8a4abe5]
O fato é que ele nao popula o componente na pagina.
Alguem sabe oque estou fazendo de errado, e poderiam me ajudar por favor?