package org.ita.capes.dao;
import java.util.List;
import java.util.Vector;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.Query;
import org.ita.capes.ief.IefInfoTela;
public class IefInfoTelaJPADAO implements DAO<IefInfoTela>{
@Override
public void delete(int id) {
EntityManager em = JPAUtil.getEntityManager();
EntityTransaction t = em.getTransaction();
t.begin();
IefInfoTela c =em.find(IefInfoTela.class, id);
em.remove(c);
t.commit();
em.close();
}
@Override
public IefInfoTela getById(int id) {
EntityManager em = JPAUtil.getEntityManager();
IefInfoTela c = em.find(IefInfoTela.class, id);
em.close();
return c;
}
@Override
public List<IefInfoTela> getList() {
EntityManager em = JPAUtil.getEntityManager();
Query q =em.createQuery("select i from IefInfoTela i");
List<IefInfoTela> list = q.getResultList();
em.close();
return list;
//return new LinkedList<IefInfoTela>();
}
@Override
public void insert(IefInfoTela e) {
EntityManager em = JPAUtil.getEntityManager();
EntityTransaction t = em.getTransaction();
t.begin();
em.persist(e);
t.commit();
em.close();
}
@Override
public void update(IefInfoTela e) {
EntityManager em = JPAUtil.getEntityManager();
EntityTransaction t = em.getTransaction();
t.begin();
em.merge(e);
t.commit();
em.close();
}
@Override
public void delete(IefInfoTela e){
delete(e.getIdIef());
}
public List<IefInfoTela> queryNotLike(IefInfoTela e) {
EntityManager em = JPAUtil.getEntityManager();
String strQuery = "SELECT e FROM IefInfoTela e WHERE ";
boolean algum=false;
Vector<String> list = new Vector<String>();
if(!(e.getNum()==0)) {
list.add(" e.num = :num");
algum=true;
}
if(!e.getNome().equals("")) {
list.add(" e.nome = :nome");
algum=true;
}
if(!e.getSigla().equals("")) {
list.add(" e.sigla = :sigla");
algum=true;
}
if(!e.getOrganizacaoAcademica().equals("")) {
list.add(" e.organizacaoAcademica = :organizacaoAcademica");
algum=true;
}
if(!e.getCategoriaAdministrativa().equals("")) {
list.add(" e.categoriaAdministrativa = :categoriaAdministrativa");
algum=true;
}
if(!e.getInfo().equals("")) {
list.add(" e.info = :info");
algum=true;
}
if(!e.getCep().equals("")) {
list.add(" e.cep = :cep");
algum=true;
}
if(!e.getCidade().equals("")) {
list.add(" e.cidade = :cidade");
algum=true;
}
if(!e.getEstado().equals("")) {
list.add(" e.estado = :estado");
algum=true;
}
if(!e.getHomepage().equals("")) {
list.add(" e.homepage = :homepage");
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";
}
}
System.out.println("Query:" + strQuery);
System.out.println(e.getNome());
Query aux = em.createQuery(strQuery);
if(!(e.getNum()==0)) aux =aux.setParameter("num", e.getNum());
if(!e.getNome().equals("")) aux =aux.setParameter("nome", e.getNome());
if(!e.getSigla().equals("")) aux =aux.setParameter("sigla", e.getSigla());
if(!e.getOrganizacaoAcademica().equals("")) aux =aux.setParameter("organizacaoAcademica", e.getOrganizacaoAcademica());
if(!e.getCategoriaAdministrativa().equals("")) aux =aux.setParameter("categoriaAdministrativa", e.getCategoriaAdministrativa());
if(!e.getInfo().equals("")) aux =aux.setParameter("info", e.getInfo());
if(!e.getCep().equals("")) aux =aux.setParameter("cep", e.getCep());
if(!e.getCidade().equals("")) aux =aux.setParameter("cidade", e.getCidade());
if(!e.getEstado().equals("")) aux =aux.setParameter("estado", e.getEstado());
if(!e.getHomepage().equals("")) aux =aux.setParameter("homepage", e.getHomepage());
List<IefInfoTela> lista = (List<IefInfoTela>) aux.getResultList();
em.close();
return lista;
}
@Override
public List<IefInfoTela> query(IefInfoTela e) {
//Campos n�o string s�o comparados com o igual como de costume
EntityManager em = JPAUtil.getEntityManager();
String strQuery = "SELECT e FROM IefInfoTela e WHERE ";
//se nenhum campo for preenchido, faz uma busca dummy que n�o retorna nada.
boolean algum = false;
Vector<String> list = new Vector<String>();
if(!(e.getNum()==0)) {
list.add(" e.num = :num");
algum=true;
}
if(!e.getNome().equals("")) {
list.add(" e.nome like :nome");
algum=true;
}
if(!e.getSigla().equals("")) {
list.add(" e.sigla like :sigla");
algum=true;
}
if(!e.getOrganizacaoAcademica().equals("")) {
list.add(" e.organizacaoAcademica like :organizacaoAcademica");
algum=true;
}
if(!e.getCategoriaAdministrativa().equals("")) {
list.add(" e.categoriaAdministrativa like :categoriaAdministrativa");
algum=true;
}
if(!e.getInfo().equals("")) {
list.add(" e.info like :info");
algum=true;
}
if(!e.getCep().equals("")) {
list.add(" e.cep like :cep");
algum=true;
}
if(!e.getCidade().equals("")) {
list.add(" e.cidade like :cidade");
algum=true;
}
if(!e.getEstado().equals("")) {
list.add(" e.estado like :estado");
algum=true;
}
if(!e.getHomepage().equals("")) {
list.add(" e.homepage like :homepage");
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.getNum()==0)) aux =aux.setParameter("num", e.getNum());
if(!e.getNome().equals("")) aux =aux.setParameter("nome", e.getNome());
if(!e.getSigla().equals("")) aux =aux.setParameter("sigla", e.getSigla());
if(!e.getOrganizacaoAcademica().equals("")) aux =aux.setParameter("organizacaoAcademica", e.getOrganizacaoAcademica());
if(!e.getCategoriaAdministrativa().equals("")) aux =aux.setParameter("categoriaAdministrativa", e.getCategoriaAdministrativa());
if(!e.getInfo().equals("")) aux =aux.setParameter("info", e.getInfo());
if(!e.getCep().equals("")) aux =aux.setParameter("cep", e.getCep());
if(!e.getCidade().equals("")) aux =aux.setParameter("cidade", e.getCidade());
if(!e.getEstado().equals("")) aux =aux.setParameter("estado", e.getEstado());
if(!e.getHomepage().equals("")) aux =aux.setParameter("homepage", e.getHomepage());
List<IefInfoTela> lista = (List<IefInfoTela>) aux.getResultList();
em.close();
return lista;
}
}