Skip to content

Instantly share code, notes, and snippets.

@ajfmo
Created February 15, 2018 15:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ajfmo/b240140e3e61690eabe899d85d689c8b to your computer and use it in GitHub Desktop.
Save ajfmo/b240140e3e61690eabe899d85d689c8b to your computer and use it in GitHub Desktop.
package ajfmo.sislic.controller;
import java.time.LocalDate;
import java.util.List;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import org.hibernate.Session;
import org.hibernate.Transaction;
import ajfmo.sislic.entities.Empleados;
import ajfmo.sislic.entities.Movimientos;
import ajfmo.sislic.entities.Sucursales;
import ajfmo.sislic.utils.HibernateUtil;
public class TransactionsDAO {
// Objects
private final Session session = HibernateUtil.getSessionFactory();
private Transaction transaction = null;
private final CriteriaBuilder builder = session.getCriteriaBuilder();
private Movimientos movimientos;
/**
* Create a transaction registry for the incoming and outgoing products
*
* @param fecha_Inicial
* @param fecha_Final
* @param sucursal_Movimientos
* @param empleado_Movimientos
*/
public void createTransaction(LocalDate fecha_Inicial, LocalDate fecha_Final, Sucursales sucursal_Movimientos,
Empleados empleado_Movimientos) {
movimientos = new Movimientos(fecha_Inicial, fecha_Final, sucursal_Movimientos, empleado_Movimientos);
transaction = session.beginTransaction();
session.save(movimientos);
transaction.commit();
}
/**
* Este metodo retorna el id del movimiento que cumpla con los parametros
* requeridos
*
* @param fecha_Inicial
* @param fecha_Final
* @param sucursal_Movimientos
* @param empleado_Movimientos
* @return el resultado del query, en este caso un unico ID, lo pasamos como
* object ya que de esta manera nos devuelve el valor en forma de objeto
* y no de lista. Es decir x numero en vez de [x] lista
*/
public Object searchTransaction(LocalDate fecha_Inicial, LocalDate fecha_Final, Sucursales sucursal_Movimientos,
Empleados empleado_Movimientos) {
String sqlQuery = "select id_movimientos from Movimientos"
+ " where fecha_Inicial = :fecha_Inicial"
+ " and fecha_Final = :fecha_Final"
+ " and sucursal_Movimientos = :sucursal_Movimientos"
+ " and empleado_Movimientos = :empleado_Movimientos";
Query hqlQuery = session.createQuery(sqlQuery);
hqlQuery.setParameter("fecha_Inicial", fecha_Inicial);
hqlQuery.setParameter("fecha_Final", fecha_Final);
hqlQuery.setParameter("sucursal_Movimientos", sucursal_Movimientos);
hqlQuery.setParameter("empleado_Movimientos", empleado_Movimientos);
// Usamos el metodo stream de Collections de Java 8 para que no nos diga que no
// encuentra valor para la entidad cuando al buscar un movimiento y no existe.
@SuppressWarnings("unchecked")
Object resultset = hqlQuery.getResultList().stream().findFirst().orElse(null);
return resultset;
}
/**
* Este metodo retorna todo el contenido de la tabla
*
* @return
*/
public List<Movimientos> search() {
CriteriaQuery<Movimientos> criteria = builder.createQuery(Movimientos.class);
Root<Movimientos> root = criteria.from(Movimientos.class);
criteria.select(root);
List<Movimientos> resultset = session.createQuery(criteria).getResultList();
return resultset;
}
public void update() {
}
public void delete() {
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment