Estou tentando carregar um datatable do primefaces com uma tabela do MySQL mas não está carregando, não recebo nenhum erro.
Desde já agradeço qualquer ajuda.
Entity:
package itc.systems.entity;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
/**
*
* @author Cezar Apulchro
*/
@Entity
@Table(name = "tabela_especialidades_medica")
public class Especialidades implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column
private String especialidade;
public Especialidades() {
}
public Especialidades(String especialidade) {
this.especialidade = especialidade;
}
public String getEspecialidade() {
return especialidade;
}
public void setEspecialidade(String especialidade) {
this.especialidade = especialidade;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Override
public int hashCode() {
int hash = 5;
hash = 97 * hash + this.id;
return hash;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Especialidades other = (Especialidades) obj;
return this.id == other.id;
}
@Override
public String toString() {
return "itc.systems.entity.Especialidades[ id=" + id + " ]";
}
}
Controller:
package itc.systems.controller;
import itc.systems.beans.LstEspecialidades;
import itc.systems.entity.Especialidades;
import java.io.Serializable;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;
/**
*
* @author Cezar Apulchro
*/
@Named(value = "espcont")
@ViewScoped
public class EspecialidadesController implements Serializable {
private static final long serialVersionUID = 1L;
private List<Especialidades> especialidades;
@Inject
private LstEspecialidades service;
@PostConstruct
public void init() {
this.especialidades = service.getEspecialidade();
}
public List<Especialidades> getEspecialidades() {
return especialidades;
}
public void setEspecialidades(List<Especialidades> especialidades) {
this.especialidades = especialidades;
}
public LstEspecialidades getService() {
return service;
}
public void setService(LstEspecialidades service) {
this.service = service;
}
}
EntityManager:
package itc.systems.beans;
import itc.systems.controller.JpaUtil;
import itc.systems.entity.Especialidades;
import java.io.Serializable;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
/**
*
* @author Cezar Apulchro
*/
@Stateless
public class LstEspecialidades implements Serializable {
private static final long serialVersionUID = 1L;
@PersistenceContext
public List<Especialidades> getEspecialidade() {
EntityManager manager = JpaUtil.getEntityManager();
Query query = manager.createQuery("select e from Especialidades e", Especialidades.class);
List<Especialidades> especialidades = query.getResultList();
manager.close();
JpaUtil.close();
return especialidades;
}
}
XHTML:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<h:form id="form">
<p:dataTable id="tbl" var="esp" value="#{espcont.especialidades}">
<p:column>
<f:facet name="Nome">Especialidade</f:facet>
<h:outputText value="#{esp.especialidade}"></h:outputText>
</p:column>
</p:dataTable>
</h:form>
</h:body>
</html>