java - tipo - Compara la parte del tiempo del campo datetime en Hibernate
variable date en java (2)
Agregue la expresión como una restricción de SQL en lugar de tener una consulta nativa completa. No conozco MySQL específicamente, pero imagine algo como esto:
Criteria criteria = session.createCriteria(MyTable.class);
criteria.add(
Expression.sql(
"TIME( {alias}.my_date, ''hh:mm:ss'') >= :1",
dateRangeMin,
new StringType()
)
);
Tengo una aplicación que usa una combinación hibernate (anotaciones) / mysql para ORM. En esa aplicación, obtuve una entidad con un campo de Fecha. Estoy buscando una forma de seleccionar en esa fecha dentro de un rango de tiempo (entonces hh: mm: ss sin la parte de fecha).
En MySQL hay una función TIME (expresión) que puede extraer la parte de tiempo y usarla en la cláusula where, pero que no parece estar disponible en Hibernate sin cambiar a consultas nativas. ¿Hay alguna opción en Hibernar para hacer esto, o debería recorrer los resultados en Java y hacer la comparación allí? ¿Sería esto mucho más lento que la solución MySQL, ya que de todos modos no usaría índices?
Las siguientes funciones están disponibles en HQL, tal vez podría usarlas:
second(...), minute(...), hour(...), day(...), month(...), year(...)