Hibernate JPQL CURRENT_DATE ne fonctionne pas sur SQL Server

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.