Não consigo trazer a lista carregada do datatable do primefaces e queria que ao acessar a página já trouxesse carregada já vi usar o <f:event> mas nem consegui usar irei postar meu código todo abaixo :
Model
import java.io.Serializable;
import javax.persistence.*;
import org.hibernate.annotations.IndexColumn;
@Entity
@Table(name=“mutacao”)
@NamedQuery(name=“Mutacao.findAll”, query=“SELECT m FROM Mutacao m”)
public class Mutacao implements Serializable {
private static final long serialVersionUID = 1L;
@IndexColumn(name="idmutacao_UNIQUE")
@Id
@Column(name="idmutacao", nullable = false)
private int idmutacao;
@Column(name="filhote", nullable = false)
private String filhote;
@Column(name="nome", nullable = false)
private String nome;
@Column(name="ovos", nullable = false)
private String ovos;
@Column(name="porta", nullable = false)
private String porta;
public Mutacao() {
}
public int getIdmutacao() {
return this.idmutacao;
}
public void setIdmutacao(int idmutacao) {
this.idmutacao = idmutacao;
}
public String getFilhote() {
return this.filhote;
}
public void setFilhote(String filhote) {
this.filhote = filhote;
}
public String getNome() {
return this.nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getOvos() {
return this.ovos;
}
public void setOvos(String ovos) {
this.ovos = ovos;
}
public String getPorta() {
return this.porta;
}
public void setPorta(String porta) {
this.porta = porta;
}
@Override
public String toString() {
return "Mutacao [idmutacao=" + idmutacao + ", filhote=" + filhote + ", nome=" + nome + ", ovos=" + ovos
+ ", porta=" + porta + "]";
}
}
BEAN
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import model.Mutacao;
import org.hibernate.HibernateException;
import org.hibernate.ObjectNotFoundException;
import org.hibernate.exception.ConstraintViolationException;
import dao.GenericDAO;
@ManagedBean(name = “mutacaoBean”)
@RequestScoped
public class MutacaoBean implements Serializable {
private static final long serialVersionUID = 1L;
/* private Professor registro;
private List listagem;
private String filtro;
private int inicio;
private int fim;
public ProfessorBean() {
registro = new Professor();
listagem = null;
filtro = new String();
inicio = 0;
fim = 0;
}*/
private Mutacao mutacao;
private List<Mutacao> mutacoes;
private String filtrarMutacao;
;
public MutacaoBean() {
mutacao = new Mutacao();
mutacoes = new ArrayList<Mutacao>();
filtrarMutacao = new String();
}
public void incluir(ActionEvent event) {
try {
GenericDAO<Mutacao, Integer> regHBR = new GenericDAO<Mutacao, Integer>(
Mutacao.class);
if (regHBR.inclui(mutacao)) {
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(
FacesMessage.SEVERITY_INFO, "Mutação incluída com sucesso !.",
"Registro incluido com sucesso."));
}
} catch (ConstraintViolationException e) {
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(
FacesMessage.SEVERITY_ERROR, "ERRO!Chave estrangeira.",
"Chave primária já existe. Registro duplicado."));
e.printStackTrace();
} catch (HibernateException e) {
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(
FacesMessage.SEVERITY_ERROR, "ERRO!Acesso ao Banco de Dados",
"Falha na inclusão dos dados."));
e.printStackTrace();
}
}
public void excluir(ActionEvent event) {
try {
GenericDAO<Mutacao, Integer> regHBR2 = new GenericDAO<Mutacao, Integer>(
Mutacao.class);
mutacao = (Mutacao) regHBR2.consulta(mutacao.getIdmutacao());
GenericDAO<Mutacao, Integer> regHBR = new GenericDAO<Mutacao, Integer>(
Mutacao.class);
if (regHBR.exclui(mutacao)) {
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(
FacesMessage.SEVERITY_INFO, "INFO!Professor exluído com sucesso.",
"Registro excluído com sucesso."));
}
} catch (ObjectNotFoundException e) {
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(
FacesMessage.SEVERITY_ERROR, "ERRO! Objeto não localizado.",
"Objeto não localizado."));
e.printStackTrace();
} catch (HibernateException e) {
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(
FacesMessage.SEVERITY_ERROR, "ERRO! Acesso ao Banco de Dados.",
"Falha na exclusão dos dados."));
e.printStackTrace();
}
}
public void alterar(ActionEvent event) {
try {
GenericDAO<Mutacao, Integer> regHBR = new GenericDAO<Mutacao, Integer>(
Mutacao.class);
if (regHBR.altera(mutacao)) {
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(
FacesMessage.SEVERITY_INFO, "INFO!Professor alterado com sucesso.",
"Registro alterado com sucesso."));
}
} catch (ObjectNotFoundException e) {
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(
FacesMessage.SEVERITY_ERROR, "ERRO!",
"Objeto não localizado."));
e.printStackTrace();
} catch (HibernateException e) {
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(
FacesMessage.SEVERITY_ERROR, "ERRO!",
"Falha na exclusão dos dados."));
e.printStackTrace();
}
}
public void consultar(ActionEvent event) {
try {
GenericDAO<Mutacao, Integer> regHBR = new GenericDAO<Mutacao, Integer>(
Mutacao.class);
mutacao = (Mutacao) regHBR.consulta(mutacao.getIdmutacao());
} catch (ObjectNotFoundException e) {
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(
FacesMessage.SEVERITY_ERROR, "ERRO!Professor não localizado.",
"Objeto não localizado."));
e.printStackTrace();
} catch (HibernateException e) {
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(
FacesMessage.SEVERITY_ERROR, "ERRO!",
"Falha de consulta aos dados."));
e.printStackTrace();
}
}
public void listaTudo(ActionEvent event) {
try {
GenericDAO<Mutacao, Integer> regHBR = new GenericDAO<Mutacao, Integer>(
Mutacao.class);
mutacoes = regHBR.listaTudo();
} catch (HibernateException e) {
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(
FacesMessage.SEVERITY_ERROR, "ERRO!Lista de todos os professores.",
"Falha na consulta aos dados."));
e.printStackTrace();
}
}
public void listaLike(ActionEvent event) {
try {
GenericDAO<Mutacao, Integer> regHBR = new GenericDAO<Mutacao, Integer>(
Mutacao.class);
mutacoes = regHBR.listaLike("nome", filtrarMutacao);
} catch (HibernateException e) {
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(
FacesMessage.SEVERITY_ERROR, "ERRO!",
"Falha na consulta aos dados."));
e.printStackTrace();
}
}
public Mutacao getMutacao() {
return mutacao;
}
public void setMutacao(Mutacao mutacao) {
this.mutacao = mutacao;
}
public List<Mutacao> getMutacoes() {
return mutacoes;
}
public void setMutacoes(List<Mutacao> mutacoes) {
this.mutacoes = mutacoes;
}
public String getFiltrarMutacao() {
return filtrarMutacao;
}
public void setFiltrarMutacao(String filtrarMutacao) {
this.filtrarMutacao = filtrarMutacao;
}
}
DAO
GENERICDAO
import java.io.Serializable;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.ObjectNotFoundException;
import org.hibernate.Session;
import org.hibernate.StaleStateException;
import org.hibernate.Transaction;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Restrictions;
import org.hibernate.exception.ConstraintViolationException;
public class GenericDAO<T, ID extends Serializable> implements
InterfaceDAO<T, ID> {
private Session session;
public Class entidade;
public GenericDAO(Class<T> entidade) {
//Abre uma sessão nova.
session = SessaoFactory.getSessionFactory().openSession();
//Abre uma sessão existente. Melhor que openSession se já existir.
//session = SessaoFactory.getSessionFactory().getCurrentSession();
this.entidade = entidade;
}
@Override
public void finalize() {
if (session != null) {
session.flush();
session.clear();
session.close();
}
try {
super.finalize();
} catch (Throwable e) {
e.printStackTrace();
}
}
public boolean inclui(T registro) throws HibernateException,
ConstraintViolationException {
Transaction tx = session.beginTransaction();
try {
session.save(registro);
tx.commit();
} catch (ConstraintViolationException e) {
if (tx != null)
tx.rollback();
throw new ConstraintViolationException(
"Falha de inclusão: Objeto já existe.", null,
"Registro duplicado.");
} catch (HibernateException e) {
if (tx != null)
tx.rollback();
throw new HibernateException("Falha de inclusão no BD: ", e);
} finally {
session.close();
}
return true;
}
public boolean exclui(T registro) throws HibernateException,
ObjectNotFoundException {
Transaction tx = session.beginTransaction();
try {
session.delete(registro);
tx.commit();
} catch (ObjectNotFoundException e) {
if (tx != null)
tx.rollback();
throw new ObjectNotFoundException(
"Falha de consulta: Objeto não localizado.",
"ERRO! Objeto não localizado");
} catch (HibernateException e) {
if (tx != null)
tx.rollback();
throw new HibernateException("Falha de exclusão no BD: ", e);
} finally {
session.close();
}
return true;
}
public boolean altera(T registro) throws HibernateException,
ObjectNotFoundException {
Transaction tx = session.beginTransaction();
try {
session.update(registro);
tx.commit();
} catch (StaleStateException e) {
if (tx != null)
tx.rollback();
throw new ObjectNotFoundException(
"Falha de consulta: Objeto não localizado ",
"ERRO! Objeto não localizado");
} catch (HibernateException e) {
if (tx != null)
tx.rollback();
throw new HibernateException("Falha de alteração no BD: ", e);
} finally {
session.close();
}
return true;
}
public Object consulta(ID id) throws HibernateException,
ObjectNotFoundException {
Object registro;
try {
registro = session.get(entidade, id);
} catch (ObjectNotFoundException e) {
throw new ObjectNotFoundException(
"Falha de consulta: Objeto não localizado ",
"ERRO! Objeto não localizado");
} catch (HibernateException e) {
throw new HibernateException("Falha de consulta no BD: ", e);
} finally {
session.close();
}
return registro;
}
@SuppressWarnings("unchecked")
public List<T> listar(int inicio, int quantia) throws HibernateException {
List<T> listagem;
try {
listagem = session.createCriteria(entidade).setMaxResults(quantia)
.setFirstResult(inicio).list();
} catch (HibernateException e) {
throw new HibernateException("Falha de consulta no BD: ", e);
} finally {
session.close();
}
return listagem;
}
@SuppressWarnings("unchecked")
public List<T> listar(Criterion clausula[]) throws HibernateException {
List<T> listagem;
try {
switch (clausula.length) {
case 1:
listagem = session.createCriteria(this.entidade)
.add(clausula[0]).list();
break;
case 2:
listagem = session.createCriteria(this.entidade)
.add(clausula[0]).add(clausula[1]).list();
break;
case 3:
listagem = session.createCriteria(this.entidade)
.add(clausula[0]).add(clausula[1]).add(clausula[2])
.list();
break;
case 4:
listagem = session.createCriteria(this.entidade)
.add(clausula[0]).add(clausula[1]).add(clausula[2])
.add(clausula[3]).list();
break;
case 5:
listagem = session.createCriteria(this.entidade)
.add(clausula[0]).add(clausula[1]).add(clausula[2])
.add(clausula[3]).add(clausula[4]).list();
break;
default:
listagem = session.createCriteria(this.entidade).list();
}
} catch (HibernateException e) {
throw new HibernateException("Falha de consulta no BD: ", e);
} finally {
session.close();
}
return listagem;
}
@SuppressWarnings("unchecked")
public List<T> listaTudo() throws HibernateException {
List<T> listagem;
try {
listagem = session.createCriteria(entidade).list();
} catch (HibernateException e) {
throw new HibernateException("Falha de consulta no BD :",e);
}finally{
session.close();
}
return listagem;
}
@SuppressWarnings("unchecked")
public List<T> listaLike(String nomeColuna, String Texto)
throws HibernateException {
List<T> listagem;
try {
listagem = session.createCriteria(this.entidade).add(Restrictions.like(nomeColuna,Texto)).list();
} catch (HibernateException e) {
throw new HibernateException("Falha de consulta no BD :",e);
}finally{
session.close();
}
return listagem;
}
}
INTERFACE
import java.io.Serializable;
import java.util.List;
import org.hibernate.criterion.Criterion;
public interface InterfaceDAO<T, ID extends Serializable> {
public boolean inclui(T registro);
public boolean exclui(T registro);
public boolean altera(T registro);
public Object consulta(ID id);
public List<T> listaTudo();
public List<T> listar(Criterion clausula[]);
public List<T> listaLike(String nomeColuna , String Texto);
}
SESSION
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class SessaoFactory {
private static final SessionFactory sessionFactory = buildSessionFactory();
@SuppressWarnings("deprecation")
private static SessionFactory buildSessionFactory() {
try {
// Cria uma sessão usando hibernate.cfg.xml
return new Configuration().configure().buildSessionFactory();
} catch (Throwable ex) {
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
LISTAR.XHTML
<?xml version="1.0" encoding="ISO-8859-1" ?> Listar Mutacao<h:form>
<p:panelGrid columns="1">
<f:facet name="header">
<h:outputText value="Listagem de Professores" />
</f:facet>
<h:commandButton id="listar" value="Listar"
actionListener="#{mutacaoBean.listaTudo}" />
</p:panelGrid>
<br></br>
<p:dataTable var="mut" value="#{mutacaoBean.mutacoes}" border="1"
width="100%" rows="10"
paginator="true"
rowsPerPageTemplate="5,10,15"
>
<p:column headerText="Id">
<h:outputText value="#{mut.idmutacao}" />
</p:column>
<p:column headerText="Nome">
<f:facet name="header">
<h:outputText value="Nome" />
</f:facet>
<h:outputText value="#{mut.nome}" />
</p:column>
<p:column headerText="Porta">
<f:facet name="header">
<h:outputText value="Porta" />
</f:facet>
<h:outputText value="#{mut.porta}" />
</p:column>
<p:column headerText="Filhote">
<f:facet name="header">
<h:outputText value="Filhote" />
</f:facet>
<h:outputText value="#{mut.filhote}" />
</p:column>
<p:column headerText="Ovos">
<f:facet name="header">
<h:outputText value="Ovos" />
</f:facet>
<h:outputText value="#{mut.ovos}" />
</p:column>
</p:dataTable>
</h:form>
</h:body>