J'ai la requête JPQL suivante:
SELECT x FROM Bla x WHERE x.deadline < CURRENT_DATE
Cela fonctionne comme prévu sur MySQL. Mais SQL Server se plaint que CURRENT_DATE
n'est pas reconnu.
Je me request quel est exactement le problème. CURRENT_DATE
est une fonction JPA standard qui doit être indépendante du SGBDR sous-jacent.
De plus, la documentation de Hibernate a CURRENT_DATE
documenté (voir ici: http://docs.jboss.org/hibernate/orm/4.1/devguide/fr-FR/html/ch11.html#ql-expressions ).
J'ai googlé et trouvé beaucoup de commentaires me disant que j'utiliser CURRENT_DATE()
place. Mais ce n'est pas JPQL.
Alors pourquoi CURRENT_DATE
ne fonctionne pas et quelle est la solution?
J'utilise Hibernate 4.1.8.Final.
Cordialement, Florian
essayez d'utiliser GETDATE()
SELECT x FROM Bla x WHERE x.deadline < GETDATE()
Vous pouvez essayer de transmettre la date actuelle en tant que paramètre à la requête. En outre, il n'y aura pas de problème de portabilité avec cela.
session.createQuery("SELECT x FROM TABLE_NAME x WHERE x.deadline < :currentDate") .setParameter( "currentDate", currentDate) .list();
Sinon, vous pouvez essayer query avec current_date()
au lieu de current_date
, qui fait partie de l'expression HQL.