2010-05-25 2 views
5

È possibile eseguire l'aritmetica della data utilizzando JPA/Hibernate? Ad esempio, ho un'entità con un campo java.util.Date che indica quando è stata creata la riga. È possibile eseguire una query utilizzando JPQL e includere l'aritmetica della data su quel campo? Ad esempio, posso eseguire un COUNT (*) di righe e quindi GROUP BY il mese in quel campo? Posso eseguire altre funzioni, ad esempio solo restituire il mese o l'anno da quel campo in una query?Data aritmetica JPA?

risposta

3

HQL ha espressioni di data come second(...), minute(...), hour(...), day(...), month(...), e year(...) ma standard di JPQL non ha tali funzioni.

+0

È possibile utilizzare HQL in combinazione con JPQL per ottenere i risultati che mi servono? HQL restituirà le stesse entità come sono o devo aggiungere ulteriori annotazioni, ecc.? – Shadowman

+0

@Shadowman: Sì, lo è e non hai bisogno di annotazioni specifiche per usarli. È solo che la tua query non sarà trasferibile (non è garantito che un altro provider supporterà queste funzioni). –