package org.ita.capes.dao;
import java.util.LinkedList;
import java.util.List;
import java.util.Vector;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.Query;
import org.ita.capes.programa.Programa;
public class ProgramaJPADAO implements DAO<Programa>{
@Override
public void delete(int id) {
EntityManager em = JPAUtil.getEntityManager();
EntityTransaction t = em.getTransaction();
t.begin();
Programa c =em.find(Programa.class, id);
em.remove(c);
t.commit();
em.close();
}
@Override
public Programa getById(int id) {
EntityManager em = JPAUtil.getEntityManager();
Programa c = em.find(Programa.class, id);
em.close();
return c;
}
@Override
public List<Programa> getList() {
EntityManager em = JPAUtil.getEntityManager();
Query q =em.createQuery("select p from Programa p");
List<Programa> list = q.getResultList();
em.close();
return list;
//return new LinkedList<Programa>();
}
@Override
public void insert(Programa e) {
EntityManager em = JPAUtil.getEntityManager();
//System.out.println(e.getNomeProfessor()+" "+ e.getUrlIdentificador());
EntityTransaction t = em.getTransaction();
t.begin();
em.persist(e);
t.commit();
em.close();
}
@Override
public void update(Programa e) {
EntityManager em = JPAUtil.getEntityManager();
EntityTransaction t = em.getTransaction();
t.begin();
em.merge(e);
t.commit();
em.close();
}
@Override
public void delete(Programa e){
delete(e.getIdPrograma());
}
@Override
public List<Programa> query(Programa e) {
/*
EntityManager em = JPAUtil.getEntityManager();
String strQuery = "SELECT e FROM Programa e WHERE ";
Vector<String> list = new Vector<String>();
boolean algum=false;
if(!e.getNomeProfessor().equals("")) {
list.add(" e.nomeProfessor = :nomeProfessor");
algum=true;
}
if(!e.getBolsista().equals("")) {
list.add(" e.bolsista = :bolsista");
algum=true;
}
if(!e.getUrlIdentificador().equals("")) {
list.add(" e.urlIdentificador = :urlIdentificador");
algum=true;
}
if(!e.getNomeBibliografico().equals("")) {
list.add(" e.nomeBibliografico = :nomeBibliografico");
algum=true;
}
if(!e.getSexo().equals("")) {
list.add(" e.sexo = :sexo");
algum=true;
}
if(!e.getEnderecoProfissional().equals("")) {
list.add(" e.enderecoProfissional = :enderecoProfissional");
algum=true;
}
if(!e.getLinhasDePesquisa().equals("")) {
list.add(" e.linhasDePesquisa = :linhasDePesquisa");
algum=true;
}
if(!e.getAreasDeAtuacao().equals("")) {
list.add(" e.areasDeAtuacao = :areasDeAtuacao");
algum=true;
}
if(!algum) list.add(" 1 = 0");
for(int i=0; i<list.size(); i++){
strQuery+=list.get(i);
if(i+1<list.size()){
strQuery+=" and";
}
}
Query aux = em.createQuery(strQuery);
if(!e.getNomeProfessor().equals("")) aux =aux.setParameter("nomeProfessor", e.getNomeProfessor());
if(!e.getBolsista().equals("")) aux =aux.setParameter("bolsista", e.getBolsista());
if(!e.getUrlIdentificador().equals("")) aux =aux.setParameter("urlIdentificador", e.getUrlIdentificador());
if(!e.getNomeBibliografico().equals("")) aux =aux.setParameter("nomeBibliografico", e.getNomeBibliografico());
if(!e.getSexo().equals("")) aux =aux.setParameter("sexo", e.getSexo());
if(!e.getEnderecoProfissional().equals("")) aux =aux.setParameter("enderecoProfissional", e.getEnderecoProfissional());
if(!e.getLinhasDePesquisa().equals("")) aux =aux.setParameter("linhasDePesquisa", e.getLinhasDePesquisa());
if(!e.getAreasDeAtuacao().equals("")) aux =aux.setParameter("areasDeAtuacao", e.getAreasDeAtuacao());
List<Programa> lista = (List<Programa>) aux.getResultList();
em.close();
return lista;
*/
System.out.println("NAO IMPLEMENTADO");
return new LinkedList<Programa>();
}
}