Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.ipn.escom.ageinnn.usuario.service; import com.ipn.escom.ageinnn.aspirante.model.DocumentoRequerido; import com.ipn.escom.ageinnn.configuracion.model.EstadoPeriodoAdmision; import com.ipn.escom.ageinnn.configuracion.model.PeriodoAdmision; import com.ipn.escom.ageinnn.curso.model.Curso; import com.ipn.escom.ageinnn.curso.model.Grupo; import com.ipn.escom.ageinnn.gestion.service.GrupoService; import com.ipn.escom.ageinnn.service.Service; import com.ipn.escom.ageinnn.usuario.model.Catalogo; import com.ipn.escom.ageinnn.usuario.model.Pais; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import javax.transaction.Transactional; import org.hibernate.Session; import org.hibernate.criterion.Projections; import org.hibernate.criterion.Restrictions; /** * * @author Erick */ public class CatalogoServiceImpl implements CatalogoService { Session session; @Override @SuppressWarnings("unchecked") public <T extends Catalogo> List<T> findAll(Class<T> clazz) { session = Service.getSessionFactory().getCurrentSession(); session.beginTransaction(); List<T> list = session.createCriteria(clazz).list(); session.getTransaction().commit(); return list; } @Transactional @SuppressWarnings("unchecked") public <T extends Catalogo> T find(Class<T> clazz, Serializable id) { T t = null; try { this.session = Service.getSessionFactory().getCurrentSession(); session.beginTransaction(); t = (T) session.get(clazz, id); session.getTransaction().commit(); } catch (Exception e) { session.getTransaction().rollback(); throw e; } return t; } @SuppressWarnings("unchecked") public <T extends Catalogo> T findByNombre(Class<T> clazz, String nombre) { T t = null; List<T> ts = new ArrayList(); try { this.session = Service.getSessionFactory().getCurrentSession(); session.beginTransaction(); ts = session.createCriteria(clazz).add(Restrictions.eq("nombre", nombre)).list(); session.getTransaction().commit(); } catch (Exception e) { System.out.println("Ha ocurrido un error..."); session.getTransaction().rollback(); throw e; } if (ts.size() > 0) { t = ts.get(0); } return t; } @Transactional @SuppressWarnings("unchecked") public List<DocumentoRequerido> findByAspiranteNacional(String nacionalidad) { List<DocumentoRequerido> documentos = null; Boolean nacional = true; try { this.session = Service.getSessionFactory().getCurrentSession(); session.beginTransaction(); documentos = session.createCriteria(DocumentoRequerido.class).add(Restrictions.eq("nacional", nacional)) .list(); session.getTransaction().commit(); } catch (Exception e) { session.getTransaction().rollback(); throw e; } return documentos; } @Transactional @SuppressWarnings("unchecked") public List<DocumentoRequerido> findByAspiranteExtranjero(String nacionalidad) { List<DocumentoRequerido> documentos = null; Boolean extranjero = true; try { this.session = Service.getSessionFactory().getCurrentSession(); session.beginTransaction(); documentos = session.createCriteria(DocumentoRequerido.class) .add(Restrictions.eq("extranjero", extranjero)).list(); session.getTransaction().commit(); } catch (Exception e) { session.getTransaction().rollback(); throw e; } return documentos; } public Pais findMexico() { return this.findMexico("Mxico"); } @Transactional @SuppressWarnings("unchecked") public Pais findMexico(String nombre) { session = Service.getSessionFactory().getCurrentSession(); session.beginTransaction(); Pais mexico = (Pais) session.createCriteria(Pais.class).add(Restrictions.eq("nombre", nombre)).list() .get(0); session.getTransaction().commit(); return mexico; } @Override @Transactional public <T extends Catalogo> void delete(Class<T> clazz, Serializable id) { T t = find(clazz, id); try { session = Service.getSessionFactory().getCurrentSession(); session.beginTransaction(); session.delete(t); session.getTransaction().commit(); } catch (Exception e) { session.getTransaction().rollback(); throw e; } } @Override @Transactional public <T extends Catalogo> Serializable save(Class<T> clazz, T catalog) { Serializable id; try { session = Service.getSessionFactory().getCurrentSession(); session.beginTransaction(); id = session.save(catalog); session.getTransaction().commit(); } catch (Exception e) { session.getTransaction().rollback(); throw e; } return id; } @Override @Transactional public <T extends Catalogo> void update(Class<T> clazz, T catalog) { try { session = Service.getSessionFactory().getCurrentSession(); session.beginTransaction(); session.saveOrUpdate(catalog); session.getTransaction().commit(); } catch (Exception e) { session.getTransaction().rollback(); throw e; } } public PeriodoAdmision findPeriodoActual() { List<PeriodoAdmision> periodoActual = new ArrayList<>(); EstadoPeriodoAdmision estadoPeriodoActual = this.findByNombre(EstadoPeriodoAdmision.class, "Actual"); System.out.println("CatalogoService: estado periodo actual " + estadoPeriodoActual.getId()); try { session = Service.getSessionFactory().getCurrentSession(); session.beginTransaction(); periodoActual = session.createCriteria(PeriodoAdmision.class) .add(Restrictions.eq("estadoPeriodoAdmisionId", estadoPeriodoActual.getId())).list(); session.getTransaction().commit(); } catch (Exception e) { session.getTransaction().rollback(); throw e; } System.out.println("CatalogoService: PeriodoActual " + periodoActual.isEmpty()); if (periodoActual.isEmpty()) { return null; } else { return periodoActual.get(0); } } @SuppressWarnings("unchecked") public List<Curso> findAllCursoByPeriodo(Class<Curso> aClass, PeriodoAdmision periodoAdmision) { List<Curso> cursoList = new ArrayList<>(); GrupoService grupoService = new GrupoService(); session = Service.getSessionFactory().getCurrentSession(); session.beginTransaction(); cursoList = session.createCriteria(Grupo.class) .add(Restrictions.eq("periodoAdmisionId", periodoAdmision.getId())) .setProjection(Projections.groupProperty("curso")).list(); System.out.println("Curso : " + cursoList); session.getTransaction().commit(); return cursoList; } }