Created
February 15, 2018 15:13
-
-
Save ajfmo/b240140e3e61690eabe899d85d689c8b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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