Modelo.ParticipanteDAO.java Source code

Java tutorial

Introduction

Here is the source code for Modelo.ParticipanteDAO.java

Source

/*
 * 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 Modelo;

import Mapeo.Participante;
import Mapeo.Persona;
import Mapeo.Proyecto;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;

/**
 *@author Mixbaal Jun Software - Ingenieria de Software, 2016 FCiencias, UNAM
 *@version 1.0
 * Clase para interactuar con la base de datos, especificamente con las tablas,
 * participante, persona y proyecto.
 */
public class ParticipanteDAO {
    //Atributo privado para conectarse con la base de datos.
    private SessionFactory sessionFactory;

    /**
     * Inicializa la sesin con la que se conectar a la base
     * @param sessionFactory 
     */
    public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }

    /**
     * Mtodo que guarda a un participante en la base de datos
     * @param participante 
     */
    public void guardar(Participante participante) {

        Session session = sessionFactory.openSession();
        Transaction tx = null;
        try {
            tx = session.beginTransaction();

            session.persist(participante);

            tx.commit();
        } catch (Exception e) {
            if (tx != null) {
                tx.rollback();
            }
            e.printStackTrace();
        } finally {
            session.close();
        }

    }

    /**
     * Mtodo que actualiza la informacin de un participante en la base de datos
     * @param participante 
     */
    public void actualizar(Participante participante) {

        Session session = sessionFactory.openSession();
        Transaction tx = null;
        try {
            tx = session.beginTransaction();

            session.update(participante);

            tx.commit();
        } catch (Exception e) {
            if (tx != null) {
                tx.rollback();
            }
            e.printStackTrace();
        } finally {
            session.close();
        }

    }

    /**
     * Mtodo que elimina un participante de la base de datos
     * @param participante 
     */
    public void eliminar(Participante participante) {

        Session session = sessionFactory.openSession();
        Transaction tx = null;
        try {
            tx = session.beginTransaction();

            session.delete(participante);

            tx.commit();
        } catch (Exception e) {
            if (tx != null) {
                tx.rollback();
            }
            e.printStackTrace();
        } finally {
            session.close();
        }

    }

    /**
     * Mtodo que regreda el participante asociado con el id que se pasa como parmetro
     * @param idParticipante
     * @return 
     */
    public Participante getParticipante(long idParticipante) {
        Participante participante = null;
        System.out.print(idParticipante);
        Session session = sessionFactory.openSession();
        Transaction tx = null;
        try {
            tx = session.beginTransaction();
            String hql = "from Participante e where e.persona.idPersona = :idpersona";
            Query query = session.createQuery(hql);
            query.setParameter("idpersona", idParticipante);
            participante = (Participante) query.uniqueResult();
            tx.commit();
        } catch (Exception e) {
            if (tx != null) {
                tx.rollback();
            }
            e.printStackTrace();
        } finally {
            session.close();
        }
        System.out.print(participante.getPersona().getIdPersona());
        return participante;
    }

    /**
     * Mtodo que regresa todos los participantes que estan en la tabla y estan activos
     * @return 
     */
    public List<Participante> Participantes() {
        List<Participante> result = null;
        Session session = sessionFactory.openSession();
        Transaction tx = null;
        try {
            tx = session.beginTransaction();
            String hql = "SELECT participante From Participante participante inner join participante.persona "
                    + "WHERE participante.persona.activo = TRUE";
            Query query = session.createQuery(hql);
            result = (List<Participante>) query.list();
            tx.commit();
        } catch (Exception e) {
            if (tx != null) {
                tx.rollback();
            }
            e.printStackTrace();
        } finally {
            session.close();
        }
        return result;
    }

    /**
     * Mtodos que regresa a todos los participantes de un proyecto
     * @param idProyecto
     * @return 
     */
    public List<Participante> participantesProyecto(Long idProyecto) {
        Proyecto proyecto = null;
        List<Participante> result = null;
        Session session = sessionFactory.openSession();
        Transaction tx = null;
        try {
            tx = session.beginTransaction();
            String hql = "SELECT r FROM Participante r WHERE r.persona.activo = TRUE AND "
                    + "r.persona.idPersona IN " + "(SELECT p.persona.idPersona FROM Pertenecer p "
                    + " WHERE p.proyecto.idProyecto = :idproyecto)";
            Query query = session.createQuery(hql);
            query.setParameter("idproyecto", idProyecto);
            result = (List<Participante>) query.list();
            tx.commit();
        } catch (Exception e) {
            if (tx != null) {
                tx.rollback();
            }
            e.printStackTrace();
        } finally {
            session.close();
        }
        return result;

    }

    /**
     * Mtodo que regresa todos los participantes que fueron eliminados logicamente
     * @return 
     */
    public List<Participante> ParticipantesEliminados() {
        List<Participante> result = null;
        Session session = sessionFactory.openSession();
        Transaction tx = null;
        try {
            tx = session.beginTransaction();
            String hql = "SELECT participante From Participante participante inner join participante.persona"
                    + " WHERE participante.persona.activo = FALSE "
                    + "ORDER BY to_char(participante.persona.fborrado,'YYYY/MM/DD')";
            Query query = session.createQuery(hql);
            result = (List<Participante>) query.list();
            tx.commit();
        } catch (Exception e) {
            if (tx != null) {
                tx.rollback();
            }
            e.printStackTrace();
        } finally {
            session.close();
        }
        return result;
    }

}