Pessoal por favor me ajudem estou fazendo um helloword EJB (entityBean) mais não consigo o resultado esperado em minha aplicação queria exibir uma pagina Web com uma lista de alunos que tenho no banco segue o código.
Banco:
Nome do Banco: lista
Tabelas:
aluno(id_aluno[pk],aluno)
frequencia(id_aluno[fk], data, frequencia, id_frequencia)
codigo:
//EntitySessionBean
package web.session;
import java.util.List;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.ejb.TransactionManagement;
import javax.ejb.TransactionManagementType;
import javax.persistence.Query;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import web.entities.Aluno;
/**
*
* @author Fabio
*/
@Stateless
@TransactionManagement(TransactionManagementType.CONTAINER)
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public class EntitySession implements EntitySessionLocal {
@PersistenceContext
//EntityManage faz a ligação com os entities Beans
private EntityManager em;
//Pegando todos os itens do custumer e colocando em uma lista
@Override
public List<Aluno> getAluno(){
Query query = em.createQuery("select a from Aluno a");
return query.getResultList();
}
@Override
public Aluno addNovoCliente(final Aluno aluno){
em.persist(aluno);
return aluno;
}
@Override
public Aluno delCliente(final Aluno aluno){
em.remove(aluno);
return aluno;
}
@Override
public List<Aluno> getAlunos() {
throw new UnsupportedOperationException("Not supported yet.");
}
}
//************EntytiSessionLocal
package web.session;
import javax.ejb.Local;
/**
*
* @author Fabio
*/
@Local
public interface EntitySessionLocal {
public java.util.List<web.entities.Aluno> getAluno();
public java.util.List<web.entities.Aluno> getAlunos();
public web.entities.Aluno addNovoCliente(final web.entities.Aluno aluno);
public web.entities.Aluno delCliente(final web.entities.Aluno aluno);
}
//***************EntytiJSFBean
package web.web;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import web.entities.Aluno;
import web.session.EntitySessionLocal;
/**
*
* @author Fabio
*/
@ManagedBean
@SessionScoped
public class EntityJSFBean {
@EJB
private EntitySessionLocal meuEntitySessionBean;
private Aluno aluno = new Aluno();
public List<Aluno> getAlunos(){
return meuEntitySessionBean.getAluno();
}
public String addAluno(){
meuEntitySessionBean.addNovoCliente(aluno);
return "Lista";
}
public String delAluno(){
meuEntitySessionBean.delCliente(aluno);
return "Lista";
}
public EntityJSFBean() {
}
public Aluno getAluno() {
return aluno;
}
public void setAluno(Aluno aluno) {
this.aluno = aluno;
}
}
//***********lista.xhtml(cliente)***********
<?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:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title>Lista de Alunos</title>
</h:head>
<h:body>
<f:view>
<h1><h:outputText value="Lista de Presença"/></h1>
<h:dataTable var="nomes" value="#{entityJSFBean.alunos}">
<h:column>
<f:facet name="header">
<h:outputText value="Nome Aluno"/>
</f:facet>
<h:outputText value="#{nomes.aluno}"/>
</h:column >
</h:dataTable>
</f:view>
</h:body>
</html>