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.documento.service; import com.ipn.escom.ageinnn.aspirante.model.Aspirante; import com.ipn.escom.ageinnn.aspirante.model.DocumentoEntregado; import com.ipn.escom.ageinnn.aspirante.model.DocumentoRequerido; import com.ipn.escom.ageinnn.service.Service; import com.ipn.escom.ageinnn.usuario.model.Usuario; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import org.hibernate.Session; import org.hibernate.criterion.Restrictions; import org.hibernate.criterion.SimpleExpression; /** * * @author Erick */ public class DocumentoServiceImpl implements DocumentoRequeridoService { private Session session; @Override public Serializable save(DocumentoRequerido documento) { Serializable id = null; try { session = Service.getSessionFactory().getCurrentSession(); session.beginTransaction(); id = session.save(documento); session.getTransaction().commit(); } catch (Exception e) { session.getTransaction().rollback(); throw e; } return id; } public void update(DocumentoRequerido documento) { Serializable id; try { session = Service.getSessionFactory().getCurrentSession(); session.beginTransaction(); session.update(documento); session.getTransaction().commit(); } catch (Exception e) { session.getTransaction().rollback(); throw e; } } public List<DocumentoRequerido> findAllDocumentosPendientesByUsuario(Aspirante usuario) { List<Integer> documentosId = new ArrayList<>(); documentosId.add(0); for (DocumentoEntregado de : usuario.getDocumentos()) { documentosId.add(de.getDocumentoId()); } SimpleExpression nacional; if (usuario.getMedico().isNacional()) { nacional = Restrictions.eq("nacional", true); } else { nacional = Restrictions.eq("extranjero", true); } List<DocumentoRequerido> documentosPendientes = new ArrayList<>(); try { session = Service.getSessionFactory().getCurrentSession(); session.beginTransaction(); documentosPendientes = session.createCriteria(DocumentoRequerido.class).add(nacional) .add(Restrictions.not(Restrictions.in("id", documentosId))).list(); session.getTransaction().commit(); } catch (Exception e) { session.getTransaction().rollback(); throw e; } return documentosPendientes; } public Session getSession() { return session; } public void setSession(Session session) { this.session = session; } }