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.alumno.model.Alumno; import com.ipn.escom.ageinnn.login.model.Login; import com.ipn.escom.ageinnn.service.Service; import com.ipn.escom.ageinnn.usuario.model.Administrador; import com.ipn.escom.ageinnn.usuario.model.Direccion; import com.ipn.escom.ageinnn.usuario.model.Docente; import com.ipn.escom.ageinnn.usuario.model.Pais; import com.ipn.escom.ageinnn.usuario.model.Usuario; import com.ipn.escom.ageinnn.utils.AlumnoCommand; import com.ipn.escom.ageinnn.utils.DocenteCommand; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import java.util.UUID; import javax.transaction.Transactional; import org.hibernate.Criteria; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.criterion.Restrictions; /** * * @author Erick */ public class UsuarioServiceImpl implements UsuarioService { private Session session; @Override @SuppressWarnings("unchecked") public <T extends Usuario> List<T> findAll(Class<T> clazz) { setSession(Service.getSessionFactory().getCurrentSession()); this.session.beginTransaction(); List<T> lista = session.createCriteria(clazz).list(); session.getTransaction().commit(); return lista; } public <T extends Usuario> List<T> findAllByAlumnoCommand(AlumnoCommand alumnoCommand) { List<T> alumnoList = new ArrayList(); try { session = Service.getSessionFactory().getCurrentSession(); session.beginTransaction(); Criteria criteria = session.createCriteria(Alumno.class); System.out.println(alumnoCommand); if (alumnoCommand != null) { if (alumnoCommand.getNombre() != null && !"".equals(alumnoCommand.getNombre())) { System.out.println("Entra nombre"); criteria.add(Restrictions.eq("nombre", alumnoCommand.getNombre())); } if (alumnoCommand.getEmail() != null && !"".equals(alumnoCommand.getEmail())) { System.out.println("Entra mail"); criteria.add(Restrictions.eq("email", alumnoCommand.getEmail())); } if (alumnoCommand.getPaisId() != null && alumnoCommand.getPaisId() > 0) { System.out.println("Entra pais"); criteria.add(Restrictions.eq("paisId", alumnoCommand.getPaisId())); } if (alumnoCommand.getSexoId() != null && alumnoCommand.getSexoId() > 0) { System.out.println("Entra sexo"); criteria.add(Restrictions.eq("idSexo", alumnoCommand.getSexoId())); } if (alumnoCommand.getEstadoRegistroId() != null && alumnoCommand.getEstadoRegistroId() > 0) { System.out.println("Entra curso"); criteria.add(Restrictions.eq("estadoRegistroId", alumnoCommand.getEstadoRegistroId())); } } alumnoList = criteria.list(); session.getTransaction().commit(); } catch (Exception e) { session.getTransaction().rollback(); throw e; } return alumnoList; } public <T extends Usuario> List<T> findAllByDocenteCommand(DocenteCommand docenteCommand) { List<T> docenteList = new ArrayList(); try { session = Service.getSessionFactory().getCurrentSession(); session.beginTransaction(); Criteria criteria = session.createCriteria(Docente.class); System.out.println(docenteCommand); if (docenteCommand != null) { if (docenteCommand.getNombre() != null && !"".equals(docenteCommand.getNombre())) { System.out.println("Entra nombre"); criteria.add(Restrictions.eq("nombre", docenteCommand.getNombre())); } if (docenteCommand.getEmail() != null && !"".equals(docenteCommand.getEmail())) { System.out.println("Entra mail"); criteria.add(Restrictions.eq("email", docenteCommand.getEmail())); } if (docenteCommand.getPaisId() != null && docenteCommand.getPaisId() > 0) { System.out.println("Entra pais"); criteria.add(Restrictions.eq("paisId", docenteCommand.getPaisId())); } if (docenteCommand.getSexoId() != null && docenteCommand.getSexoId() > 0) { System.out.println("Entra sexo"); criteria.add(Restrictions.eq("idSexo", docenteCommand.getSexoId())); } if (docenteCommand.getEstadoRegistroId() != null && docenteCommand.getEstadoRegistroId() > 0) { System.out.println("Entra curso"); criteria.add(Restrictions.eq("estadoRegistroId", docenteCommand.getEstadoRegistroId())); } } docenteList = criteria.list(); session.getTransaction().commit(); } catch (Exception e) { session.getTransaction().rollback(); throw e; } return docenteList; } @SuppressWarnings("unchecked") public <T extends Usuario> List<T> aspirantesConDocumentacion(Class<T> clazz) { List<T> lista = null; try { setSession(Service.getSessionFactory().getCurrentSession()); this.session.beginTransaction(); Query q; String query = "select a FROM Aspirante a, DocumentoEntregado de where a.id = de.aspiranteId group by a.id"; q = session.createQuery(query); lista = q.list(); session.getTransaction().commit(); } catch (Exception e) { session.getTransaction().rollback(); throw e; } return lista; } @SuppressWarnings("unchecked") public <T extends Usuario> List<T> findAllAspirantes(Class<T> clazz) { setSession(Service.getSessionFactory().getCurrentSession()); this.session.beginTransaction(); Integer id = 7; List<T> lista = session.createCriteria(clazz).add(Restrictions.eq("estadoRegistroId", id)).list(); session.getTransaction().commit(); return lista; } @Override @Transactional public <T extends Usuario> Serializable save(T t) { Integer id = null; CatalogoServiceImpl catalogoServiceImpl = new CatalogoServiceImpl(); Pais paisMexico = catalogoServiceImpl.findMexico(); if (t.getPaisId() != paisMexico.getId()) { System.out.println("Los paises no son iguales"); t.setNacional(false); } // t.setEnabled(true); try { session = Service.getSessionFactory().getCurrentSession(); session.beginTransaction(); id = (Integer) session.save(t); session.getTransaction().commit(); } catch (Exception e) { session.getTransaction().rollback(); throw e; } return id; } @Transactional public Serializable saveAdminUser(Administrador t) { Integer id = null; try { session = Service.getSessionFactory().getCurrentSession(); session.beginTransaction(); id = (Integer) session.save(t); session.getTransaction().commit(); } catch (Exception e) { session.getTransaction().rollback(); throw e; } return id; } @Override @Transactional public <T extends Usuario> void remove(Class<T> clazz, Integer id) { Usuario u = find(clazz, id); if (u != null) { try { session = Service.getSessionFactory().getCurrentSession(); session.beginTransaction(); session.delete(u); session.getTransaction().commit(); } catch (Exception e) { session.getTransaction().rollback(); throw e; } } } @Override @Transactional @SuppressWarnings("unchecked") public <T extends Usuario> T find(Class<T> clazz, Integer 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; } @Transactional public <T extends Usuario> void update(T t, Class<T> clazz) { System.out.println("Ejecutando el mtodo save"); try { this.session = Service.getSessionFactory().getCurrentSession(); session.beginTransaction(); session.saveOrUpdate(t); session.getTransaction().commit(); } catch (Exception e) { session.getTransaction().rollback(); throw e; } } public Session getSession() { this.session = Service.getSessionFactory().getCurrentSession(); return session; } public void setSession(Session session) { this.session = session; } public <T extends Usuario> T findByEmail(Class<T> clazz, String email) { T login = null; List<Usuario> loginList = new ArrayList<>(); try { this.session = Service.getSessionFactory().getCurrentSession(); session.beginTransaction(); loginList = session.createCriteria(clazz).add(Restrictions.eq("email", email)).list(); session.getTransaction().commit(); } catch (Exception e) { session.getTransaction().rollback(); throw e; } if (!loginList.isEmpty()) { login = (T) loginList.get(0); } return login; } public String generateToken() { return UUID.randomUUID().toString(); } public <T extends Usuario> T findByEmailAndToken(Class<T> clazz, String email, String token) { T login = null; List<T> loginList = new ArrayList<>(); try { this.session = Service.getSessionFactory().getCurrentSession(); session.beginTransaction(); loginList = session.createCriteria(clazz) .add(Restrictions.and(Restrictions.eq("email", email), Restrictions.eq("mailToken", token))) .list(); session.getTransaction().commit(); } catch (Exception e) { session.getTransaction().rollback(); throw e; } if (!loginList.isEmpty()) { login = loginList.get(0); } return login; } public <T extends Usuario> List<T> findAllByEnabled(Class<T> clazz) { setSession(Service.getSessionFactory().getCurrentSession()); this.session.beginTransaction(); List<T> lista = session.createCriteria(clazz).add(Restrictions.eq("enabled", true)).list(); session.getTransaction().commit(); return lista; } public Integer saveDireccion(Direccion direccion) { Integer id = null; try { session = Service.getSessionFactory().getCurrentSession(); session.beginTransaction(); id = (Integer) session.save(direccion); session.getTransaction().commit(); } catch (Exception e) { session.getTransaction().rollback(); } return id; } public void updateDireccion(Direccion direccion) { try { session = Service.getSessionFactory().getCurrentSession(); session.beginTransaction(); session.saveOrUpdate(direccion); session.getTransaction().commit(); } catch (Exception e) { session.getTransaction().rollback(); } } }