com.asociate.dao.AmistadDAO.java Source code

Java tutorial

Introduction

Here is the source code for com.asociate.dao.AmistadDAO.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 com.asociate.dao;

import com.asociate.modelo.Amistad;
import com.asociate.modelo.Persona;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.hibernate.Query;
import org.hibernate.Session;

/**
 *
 * @author Ventura
 */
public class AmistadDAO {

    /**
     *
     * @param idPersona
     * @return
     */
    public List<Amistad> getListaAmigos(Long idPersona) {
        Session sesion = HibernateUtil.getSessionFactory().openSession();
        List<Amistad> salida = new ArrayList();
        try {
            Query qu = sesion.createQuery("Select A from Amistad A where A.idOrigen=:id and A.bloqueado = 'N'")
                    .setParameter("id", idPersona);
            salida.addAll(qu.list());

        } catch (RuntimeException e) {
            e.printStackTrace();
        } finally {
            sesion.flush();
            sesion.close();
        }

        return salida;
    }

    /**
     *
     * @param idPersona
     * @return
     */
    public Map<Long, Persona> getMapaAmigos(Long idPersona) {
        Session sesion = HibernateUtil.getSessionFactory().openSession();
        Map<Long, Persona> mapa = new HashMap();
        List<Persona> salidaP = new ArrayList();
        try {

            Query qu = sesion.createQuery(
                    "Select P from Persona P where P.idPersona in (Select A.idAmigo from Amistad A where A.idOrigen=:id and A.bloqueado = 'N')")
                    .setParameter("id", idPersona);
            salidaP = qu.list();
        } catch (RuntimeException e) {
            e.printStackTrace();
        } finally {
            sesion.flush();
            sesion.close();
        }
        for (Persona pe : salidaP) {
            mapa.put(pe.getIdPersona(), pe);
        }

        return mapa;
    }

    /**
     *
     * @param ami
     */
    public void guardar(Amistad ami) {
        Session sesion = HibernateUtil.getSessionFactory().openSession();
        try {
            sesion.save(ami);
        } catch (RuntimeException e) {
            e.printStackTrace();
        } finally {
            sesion.flush();
            sesion.close();
        }
    }

    /**
     *
     * @param idAmigo
     * @param idOrigen
     */
    public void eliminarPorId(Long idAmigo, Long idOrigen) {
        Session sesion = HibernateUtil.getSessionFactory().openSession();
        try {
            Query qu = sesion.createQuery(
                    "Update Amistad A set A.bloqueado='S'  where ((A.idAmigo:idA and A.idOrigen=:idO)or(A.idOrigen:idA1 and A.idAmigo=:idO1))");
            qu.setParameter("idO", idOrigen).setParameter("idA", idAmigo).setParameter("idA1", idOrigen)
                    .setParameter("idO1", idAmigo);
            qu.executeUpdate();
        } catch (RuntimeException e) {
            e.printStackTrace();
        } finally {
            sesion.flush();
            sesion.close();
        }
    }

    /**
     *
     * @param idAmigo
     * @param idOrigen
     * @return
     */
    public boolean esAmigo(Long idAmigo, Long idOrigen) {
        Session sesion = HibernateUtil.getSessionFactory().openSession();
        boolean salida = false;
        try {
            Query qu = sesion
                    .createQuery(
                            "Select A from Amistad A where A.idOrigen=:id and A.idAmigo=:idA and A.bloqueado = 'N'")
                    .setParameter("id", idOrigen).setParameter("idA", idAmigo);
            salida = !qu.list().isEmpty();

        } catch (RuntimeException e) {
            e.printStackTrace();
        } finally {
            sesion.flush();
            sesion.close();
        }

        return salida;
    }

    /**
     *
     * @param idAmigo
     * @param idOrigen
     * @return
     */
    public boolean eraAmigo(Long idAmigo, Long idOrigen) {
        Session sesion = HibernateUtil.getSessionFactory().openSession();
        boolean salida = false;
        try {
            Query qu = sesion.createQuery(
                    "Select A from Amistad A where ((A.idAmigo:idA and A.idOrigen=:idO)or(A.idOrigen:idA1 and A.idAmigo=:idO1)) and A.bloqueado = 'S'")
                    .setParameter("idO", idOrigen).setParameter("idA", idAmigo).setParameter("idA1", idOrigen)
                    .setParameter("idO1", idAmigo);
            salida = !qu.list().isEmpty();

        } catch (RuntimeException e) {
            e.printStackTrace();
        } finally {
            sesion.flush();
            sesion.close();
        }

        return salida;
    }

    /**
     *
     * @param idAmigo
     * @param idOrigen
     * @param estado
     */
    public void actualizarAmistad(Long idAmigo, Long idOrigen, String estado) {
        Session sesion = HibernateUtil.getSessionFactory().openSession();
        try {
            Query qu = sesion.createQuery(
                    "Update Amistad A set A.bloqueado=:est  where ((A.idAmigo:idA and A.idOrigen=:idO)or(A.idOrigen:idA1 and A.idAmigo=:idO1))");
            qu.setParameter("idO", idOrigen).setParameter("idA", idAmigo).setParameter("idA1", idOrigen)
                    .setParameter("idO1", idAmigo).setParameter("est", estado);
            qu.executeUpdate();
        } catch (RuntimeException e) {
            e.printStackTrace();
        } finally {
            sesion.flush();
            sesion.close();
        }
    }

}