java - fechas - Subsidio para mes, año, funciones de fecha en jpa
jpa java (2)
Pocas implementaciones de JPA tienen soporte integrado para funciones de fecha / hora.
EclipseLink
EclipseLink admite EXTRACT permitiendo que cualquier valor de parte de fecha / hora soportado por la base de datos se extraiga de la fecha / hora. La función EXTRACT es independiente de la base de datos, pero requiere soporte de base de datos.
EXTRACT(YEAR, model.currencyExchangeDate)
, pero requiere EclipseLink 2.4.xFUNC permite que una función de base de datos sea llamada desde JPQL. Permite llamar a cualquier función de base de datos no admitida directamente en JPQL.
Para llamar a la función de
MyFunc(a, b, c)
datosMyFunc(a, b, c)
useFUNC(''MyFunc'', a, b, c)
.Puede probar
FUNC(''YEAR'', currencyExchangeDate)
para llamar a la función ''AÑO''.Hibernar
En HQL, puede tener la función de fecha
YEAR(date)
,MONTH(date)
,DAY(date)
para extraer los detalles requeridos. Otras funciones de tiempo admitidas sonHOUR(date)
,MINUTE(date)
,SECOND(date)
.API de criterios
Función CriteriaBuilder # (): crea una expresión para la ejecución de una función de base de datos.
CriteriaQuery<IptExchangeratelines> cq = cb.createQuery(IptExchangeratelines.class); Root<IptExchangeratelines> exRateLine = cq.from(IptExchangeratelines.class); cq.where(cb.equal(cb.function("year", Integer.class,
exRateLine.get(exRateLine_.currencyExchangeDate)), year) .and(cb.equal(cb.function("month", Integer.class, exRateLine.get(exRateLine_.currencyExchangeDate)), month)));
Quiero ejecutar esta consulta en JPA. Pero estoy obteniendo un error al ejecutar esta consulta. Cómo usar Month (), Year () en JPA. Podemos usar estos en SQL Query nativo. ¿Pero cómo usarlo? Por favor, ayúdenme. ¡Gracias de antemano!
select model from IptExchangeratelines model where model.iptExchangerate.id=:id and " +
" month(model.currencyExchangeDate)=:month and year(model.currencyExchangeDate)=:year
DataNucleus JPA j ha incorporado soporte para AÑO, MES, DÍA, HORA, MINUTO, SEGUNDO, así como la "FUNCIÓN" estándar de JPA 2.1 para invocar funciones nativas en RDBMS.
En mi experiencia, TODAS las implementaciones de JPA admiten tales cosas, a diferencia de la impresión que da la otra respuesta