Para hacer un CASE deSQL en Criteria, utilizamos lo siguiente:
builderSub.selectCase().when(builderSub.equal(rootEntitySub.get("estadisticasPortabilidadId").get("tipoMensaje").get("codigo"), "SP"), rootEntitySub.get("cantidad")).otherwise(0)
Que equivale a:
CASE tipo_mensaje WHEN 'SP' THEN cantidad ELSE 0 END
Mostrando entradas con la etiqueta Criteria. Mostrar todas las entradas
Mostrando entradas con la etiqueta Criteria. Mostrar todas las entradas
lunes, 29 de octubre de 2018
domingo, 28 de octubre de 2018
Criteria Trunc Date
Para hacer un trunc de una fecha (agrupar fechas por día ('DD'), semana ('WW'), mes ('MM'), o año ('YY')) en SQL sería:
Trunc(fecha, 'MM') AS fecha
Y en Criteria sería:
builder.function("TRUNC", Date.class, rootEntity.get("fecha"), builder.literal("MM"))
Trunc(fecha, 'MM') AS fecha
Y en Criteria sería:
builder.function("TRUNC", Date.class, rootEntity.get("fecha"), builder.literal("MM"))
sábado, 27 de octubre de 2018
Etiqueta @Formula en Entidades Hibernate y uso en Criteria
La etiqueta @Formula permite asignar una fórmula a un atributo de una entidad para que se aplique en caso de seleccionarla en alguna consulta.
Por ejemplo, tengo una entidad con un atributo "fecha" mapeado con el campo "FECHA" de la tabla de base de datos. Tengo que poder realizar una consulta a base de datos agrupando las fechas de los registros por días, semanas, meses o años dependiendo de un filtro que marcará el usuario.
En principio es tan simple como utilizar la función "TRUNC" de SQL en la consulta para que me agrupe las fechas, pero también podemos declarar el "TRUNC" en la entidad a través de la etiqueta @Formula, utilizando atributos adicionales no mapeados con ningún campo de la base de datos.
Por ejemplo, tengo una entidad con un atributo "fecha" mapeado con el campo "FECHA" de la tabla de base de datos. Tengo que poder realizar una consulta a base de datos agrupando las fechas de los registros por días, semanas, meses o años dependiendo de un filtro que marcará el usuario.
En principio es tan simple como utilizar la función "TRUNC" de SQL en la consulta para que me agrupe las fechas, pero también podemos declarar el "TRUNC" en la entidad a través de la etiqueta @Formula, utilizando atributos adicionales no mapeados con ningún campo de la base de datos.
Suscribirse a:
Entradas (Atom)