co.com.codesoftware.logic.ProductoTmpLogic.java Source code

Java tutorial

Introduction

Here is the source code for co.com.codesoftware.logic.ProductoTmpLogic.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 co.com.codesoftware.logic;

import co.com.codesoftware.persistence.entity.administracion.RespuestaEntity;
import co.com.codesoftware.persistence.entity.productos.ProductoTmpEntity;
import co.com.codesoftware.persistencia.HibernateUtil;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Projections;

/**
 *
 * @author root
 */
public class ProductoTmpLogic implements AutoCloseable {

    private Session sesion;
    private Transaction tx;

    /**
     * metodo que inserta en la tabla
     *
     * @param productos
     * @return
     */
    public RespuestaEntity insertaProductoTmp(List<ProductoTmpEntity> productos) {
        this.initOperation();
        RespuestaEntity respuesta = new RespuestaEntity();
        List<ProductoTmpEntity> listaBorrar = null;
        try {
            Query query = this.sesion.createQuery("delete ProductoTmpEntity ");
            query.executeUpdate();
            this.close();
            this.sesion = null;
            this.tx = null;
            this.initOperation();
            //            Criteria crit = sesion.createCriteria(ProductoTmpEntity.class);
            //            listaBorrar = crit.list();
            //            if (!listaBorrar.isEmpty()) {
            //                for (ProductoTmpEntity iteratorBorrar : listaBorrar) {
            //                    sesion.delete(iteratorBorrar);
            //                }
            //            }
            for (ProductoTmpEntity iterator : productos) {
                sesion.save(iterator);
            }
            respuesta.setCodigoRespuesta(1);
            respuesta.setDescripcionRespuesta("EXITOSO");
            respuesta.setMensajeRespuesta("OK");

        } catch (Exception e) {
            e.printStackTrace();
            respuesta.setCodigoRespuesta(0);
            respuesta.setDescripcionRespuesta(e.getMessage());
            respuesta.setMensajeRespuesta("ERROR" + e.getMessage());

        }
        return respuesta;
    }

    private void initOperation() throws HibernateException {
        sesion = HibernateUtil.getSessionFactory().openSession();
        tx = sesion.beginTransaction();
    }

    @Override
    public void close() throws Exception {
        if (tx != null) {
            tx.commit();
        }
        if (sesion != null) {
            sesion.close();
        }
    }

    /**
     * Funcion que consulta todos los productos de la tabla temporal
     *
     * @return
     */
    public List<ProductoTmpEntity> consultaTablaTemporal() {
        this.initOperation();
        List<ProductoTmpEntity> respuesta = null;
        try {
            Criteria crit = sesion.createCriteria(ProductoTmpEntity.class);
            crit.addOrder(Order.asc("id"));
            respuesta = crit.list();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return respuesta;
    }

    /**
     * Funcion para consultar el maximo de una tabla
     *
     * @return
     */
    public Integer consultaMax() {
        Criteria crit = sesion.createCriteria(ProductoTmpEntity.class);
        crit.setProjection(Projections.max("id"));
        Integer count = 1;
        try {
            count = (Integer) crit.uniqueResult() + 1;
        } catch (Exception e) {
            count = 1;
        }
        return count;
    }
}