com.dao.AsientoDAO.java Source code

Java tutorial

Introduction

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

/**
 *
<p><a href="api/reporte">Reporte resource</a> 
 * @author melina
 */

import org.hibernate.query.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

public class AsientoDAO {
    @PersistenceContext
    private EntityManager entityManager;

    public Asiento addAsiento(Asiento asiento) {
        Transaction tx = null;
        Session session = SessionUtil.getSession();
        tx = session.beginTransaction();
        int asientoId = (Integer) session.save(asiento);
        tx.commit();
        return asiento;
    }

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

        return asientos;
    }

    public Asiento getAsiento(int id) {

        Asiento asiento = (Asiento) SessionUtil.getSession().get(Asiento.class, id);
        return asiento;
    }

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

    public int updateAsiento(int id, Asiento asiento) {
        Transaction tx = null;
        int rowCount = 0;
        if (id <= 0)
            return rowCount;
        try (Session session = SessionUtil.getSession()) {
            tx = session.beginTransaction();
            CriteriaBuilder builder = session.getCriteriaBuilder();
            CriteriaUpdate<Asiento> query = builder.createCriteriaUpdate(Asiento.class);
            Root<Asiento> root = query.from(Asiento.class);
            query.set("categoria", asiento.getCategoria());
            query.set("numero", asiento.getNumero());
            query.set("lugar", asiento.getLugar());

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

}