Achei que essa classe resolveria meu problema, mas será que resolveria mesmo? Gostaria de estar no Form Escola e gravar,deletar,atualizar e listar somente escola. Se tiver no Form professor, idem para professior. Abaixo minha Interface e minha classe DaoImplementaTudo.
public class EscolaDao implements DAO<Escola>{
@Override
public void Inserir(Escola t) {
Seu Método
}
@Override
public void Deletar(Escola t) {
Seu Método
}
@Override
public void Atualizar(Escola t) {
Seu Método
}
@Override
public List<Escola> lista() {
Seu Método
}
}
@ManagedBean @SessionScoped
public class EscolaControle {
private Escola escola;
private DataModel listaEscola;
public DataModel getEscolaAtiva(){
List<Escola> lista = new EscolaDao().list();
listaEscola = new ListDataModel(lista);
return listaEscola;
}
public Escola getEscola() {
return escola;
}
public void setEscola(Escola escola) {
this.escola = escola;
}
public String preparInserirEscola(){
escola = new Escola();
return "gerenciarEscola";
}
public String DeletarEscola(){
Escola escolatemp = (Escola)(listaEscola.getRowData());
DAO dao = new EscolaDao();
dao.Deletar(escolatemp);
return "index";
}
public String prepararAlterarEscola(){
escola = (Escola)(listaEscola.getRowData());
return "gerenciarEscola";
}
public String adicionarEscola(){
DAO dao = new EscolaDao();
dao.Inserir(escola);
return "index";
}
public String alterarEscola(){
DAO dao = new EscolaDao();
dao.Atualizar(escola);
return "index";
}
@Override
public List<Escola> list() {
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction t = session.beginTransaction();
List lista = session.createQuery("from Escola").list();
t.commit();
return lista;
}
@Override
public void Inserir(Escola escola) {
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction t = session.beginTransaction();
session.save(escola);
t.commit();
}
@Override
public void Deletar(Escola escola) {
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction t = session.beginTransaction();
session.delete(escola);
t.commit();
}
@Override
public void Atualizar(Escola escola) {
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction t = session.beginTransaction();
session.update(escola);
t.commit();
}
}
import java.util.List;
import br.com.prime.modelo.*;
public interface DAO<T> {
public void Inserir(T t);
public void Deletar(T t);
public void Atualizar(T t);
public List<T> list();
}
Agora só preciso testar isso. Terei que criar um xhtml com os campos e testar. Ainda to meio cru nisso. Esse xhtml não será o definitivo, pois receberei um e colocarei essa lógica nele. Mas eu ainda não fiz as configuraçoes do Hibernate, para conexão com o banco. Já tenho os drivers no meu ClassPath. Eu uso:
PostgreSql, Helios,Java 6, Hibernate/JPA,JSF 2.0 e Primefaces 2.2.1. Precisava acrescentar aí um DataGrid da Prime para carregar as escolas e outros. Isso é só meu começo com a ferramenta.