com.dao.LugarDAO.java Source code

Java tutorial

Introduction

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

import com.models.Lugar;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaDelete;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.CriteriaUpdate;
import javax.persistence.criteria.Root;
/**
 *
 * @author anni
 */
import org.hibernate.query.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

public class LugarDAO {
    @PersistenceContext
    private EntityManager entityManager;

    public Lugar addLugar(Lugar lugar) {
        Transaction tx = null;
        Session session = SessionUtil.getSession();
        tx = session.beginTransaction();
        int lugarId = (Integer) session.save(lugar);
        tx.commit();
        return lugar;
    }

    public List<Lugar> getLugares() {
        List<Lugar> lugares = new ArrayList<>();
        try (Session session = SessionUtil.getSession()) {
            CriteriaBuilder builder = session.getCriteriaBuilder();
            CriteriaQuery<Lugar> query = builder.createQuery(Lugar.class);
            Root<Lugar> root = query.from(Lugar.class);
            query.select(root);
            Query<Lugar> q = session.createQuery(query);
            lugares = q.getResultList();
        }

        return lugares;
    }

    public Lugar getLugar(int id) {

        Lugar lugar = (Lugar) SessionUtil.getSession().get(Lugar.class, id);
        return lugar;
    }

    public int deleteLugar(int id) {
        Transaction tx = null;
        int rowCount;
        try (Session session = SessionUtil.getSession()) {
            tx = session.beginTransaction();
            CriteriaBuilder builder = session.getCriteriaBuilder();
            CriteriaDelete<Lugar> query = builder.createCriteriaDelete(Lugar.class);
            Root<Lugar> root = query.from(Lugar.class);
            query.where(builder.equal(root.get("id"), id));
            Query q = session.createQuery(query);
            rowCount = q.executeUpdate();
            tx.commit();
        }
        return rowCount;
    }

    public int updateLugar(int id, Lugar lugar) {
        Transaction tx = null;
        int rowCount = 0;
        if (id <= 0)
            return rowCount;
        try (Session session = SessionUtil.getSession()) {
            tx = session.beginTransaction();
            CriteriaBuilder builder = session.getCriteriaBuilder();
            CriteriaUpdate<Lugar> query = builder.createCriteriaUpdate(Lugar.class);
            Root<Lugar> root = query.from(Lugar.class);
            query.set("nombre", lugar.getNombre());
            query.set("tipo", lugar.getTipo());
            query.set("capacidad", lugar.getCapacidad());
            query.set("direccion", lugar.getDireccion());

            query.where(builder.equal(root.get("id"), id));
            Query q = session.createQuery(query);
            rowCount = q.executeUpdate();
            tx.commit();
        }
        return rowCount;
    }
}