Я пытаюсь написать этот запрос, используя Hibernate 3 и Oracle 10.Как использовать текущую дату в запросе HQL с базой данных Oracle?
from Alert alert
where alert.expiration > current_date()
order by alert.priority, alert.updated, alert.name
Это создает SQL, как это -
Hibernate: select alert0_.ANNOUNCEMENTS_ID as ANNOUNCE1_1_, alert0_.ANNOUNCEMENT
S_NAME as ANNOUNCE2_1_, alert0_.ANNOUNCEMENTS_PRIORITY as ANNOUNCE3_1_, alert0_.
ANNOUNCEMENTS_EXPIRATION as ANNOUNCE4_1_, alert0_.ANNOUNCEMENTS_UPDATE_DATE as A
NNOUNCE5_1_ from NYC311_ANNOUNCEMENTS alert0_ where (alert0_.ANNOUNCEMENTS_EXPIR
ATION>current_date()) order by alert0_.ANNOUNCEMENTS_PRIORITY , alert0_.ANNOUNC
EMENTS_UPDATE_DATE , alert0_.ANNOUNCEMENTS_NAME
я получаю все эти дурацкие ошибки, как «отсутствует право скобки ", когда есть, по-видимому, совершенно сбалансированная скобка.
Почему Оракул? Есть ли лучший способ написать мой HQL-запрос?
Current_date и Current_timestamp - это функции Oracle. Current_date = Sysdate, но Oracle не нуждается() после вызова функции. – 2009-02-05 21:32:36
CURRENT_DATE(), CURRENT_TIME(), CURRENT_TIMESTAMP() также являются Hibernate HQL функциями. («Java Persistence With Hibernate») –
просто передайте CURRENT_DATE() в вашем запросе, например, например: «и date = CURRENT_DATE()»; –