Что такое HQL-эквивалент этого специфичного для Oracle запроса? - PullRequest
1 голос
/ 28 апреля 2011

У меня есть запрос в одном из моих проектов, как показано ниже, который использует специфические для оракула вещи. Как переписать это на HQL?

from HotAddressHibId a  where a.expirationTsp >= trunc(SYSDATE)

Ответы [ 3 ]

4 голосов
/ 28 апреля 2011

И trunc(), и sysdate() зарегистрированы как функции на диалекте Hibernate для Oracle, так что вы можете просто сделать это:

from HotAddressHibId a  where a.expirationTsp >= trunc(sysdate()) 
1 голос
/ 28 апреля 2011
"from HotAddressHibId a where a.expirationTsp >= ?"

Затем подготовьте объекты Date для очистки часов, минут, секунд и миллисекунд и привяжите их к параметру запроса.

Обратите внимание, что поведение может измениться, если Oracle находится в другом часовом поясе.

0 голосов
/ 28 апреля 2011

Вы можете использовать запрос Hibernate Criteria с sqlRestriction:

List elements = session.createCriteria(HotAddressHibId.class)
    .add( Restrictions.sqlRestriction("expiration_tsp >= trunc(SYSDATE)" )
    .list();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...