Primefaces - Não consigo trazer a lista carregada do datatable do primefaces

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>

No seu mutaçãoBean tenta colocar:

     @PostConstruct
     public void init(){              
       mutacoes = listaTudo();

       //ou algo  do tipo:
       ​mutacoes=   regHBR.listaTudo();

já tentei mas vou tentar de novo … e tentei de tudo

o seu h:commandButton de listar funciona?

Eu fiz de um jeito apertar usando botao ele lista mas eu nao quero assim quero quando acionar a pagina ja traga a listagem carregada

respondendo vc funciona sim

abaixo estar o codigo xhtm de listar mutaçao que funciona acionando botao listar

<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>

De todo jeito você precisará listar as mutações no @PostConstruct. faz o for ou printa o tamanho da lista no PostConstruct e veja a lista vem vazia… Dá um clean no projeto também. Deveria funcionar.

vou tentar acha aonde baixei projeto para te mandar o link de modelo

Tem 5 anos não mexo com programação estou enferrujado segui outro rumo de plantaçoes de pimentas e criar peixes por isso estou voando em tudo

Esse sistema que estou criando seria para criação de calopsitas… peixes e para plantação de pimentas por isso estou refazendo tentando né.

A mensagem que mostrou quando executei o incluir

jul 01, 2021 4:42:22 PM com.sun.faces.vendor.WebContainerInjectionProvider getAnnotatedMethodForMethodArr
ADVERTÊNCIA: JSF1046: O método ‘public void bean.MutacaoBean.listaTudo(javax.faces.event.ActionEvent)’ marcado com a anotação ‘javax.annotation.PostConstruct’ não pode ter parâmetros. Este método será ignorado.

Só olhar a imagem que inclui listando

@PostConstruct o retorno é do tipo void. Se retornar algo será ignorado… Conseguiu listar ao chamar a tela?

Já fiz assim dos dois jeito você falou não listou nada

Já estou é desistindo já

Já segui até as aulas do sergio delfino no curso dele fiz parecido e não carrega a lista nem com reza