Desarrollo WEB.


Las practicas de programación orientadas a la web son muy cambiantes en el tiempo. Es necesario conocer e implementar tecnologías, conocer lenguajes,integrar comunidades,usar Ides, etc, recientes, para responder al mercado que se acerca.

miércoles, 15 de agosto de 2012

Comparar fechas en un Sesion Bean con EJBQL

Las practicas de programación en EJBQL son muy parecidas a SQL, solo que en EJBQL todo es orientado a objetos, ya no tenemos una tabla sino un objeto construido (clase java)  referenciado a una tabla SQL que es comparada, alimentada y consultada a travez del motor de persistencia JPA. 

Esta practica permite comparar una fecha (java.util.date) que llega como parámetro para ser  identificada como una propiedad de un objeto. Cuando realizamos la comparación mediante la forma tradicional que se usa en SQL, no obtenemos un resultado optimo. es por eso necesario usar el .setParameter("nombre",valor) para que el tipo de dato que viene se mantenga y pueda ser identificado eficientemente.
.
Cuando son enteros o cadenas se pueden comparar mediante el método tradicional de 
propiedadEJB = '"  + campo+ "', pero, ya en fechas, hay que cambiar la forma según la notación EJBQL.

Ejemplo: 


@Override
public List findIdRhEmpleadoEnDisposicion(int idRhEmpleado, Date horaActual) {
        Query query;
            query = em.createQuery("select object(o) from ProduccionPlaneacionTurnoFecha as o where o.idRhEmpleado='" + idRhEmpleado + "' AND o.fechaInicio <= :start AND o.fechaFin >= :start ").setParameter("start", horaActual);
        return  query.getResultList();
    }

Una imagen para mas claridad.


No hay comentarios:

Publicar un comentario