2010-05-20 3 views
6

Я хочу написать следующий запрос в качестве критерия запроса Hibernate:Соответствует эквиваленту Coalesce в запросе на критерии Hibernate?

select 
     to_char(nvl(ol.updated_datetime, ol.created_datetime), 'dd/mm/yyyy'), sum(discount_price) 
    from order_line ol 
    where nvl(ol.updated_datetime, ol.created_datetime) between to_date('05-may-10') and to_date('30-may-10') 
    group by to_char(nvl(ol.updated_datetime, ol.created_datetime), 'dd/mm/yyyy') 

Но я не уверен, как преобразовать NVL функции в эквивалентном критерии запроса. Я понимаю, что HQL имеет выражение coalesce, но я хочу написать его как запрос Criteria.

Любые советы были бы очень оценены!

Редактировать: Если кто-то может предоставить запрос HQL, который делает выше, это может быть моим решением.

ответ

1

Вместо nvl() вы должны использовать coalesce(). Эта функция является стандартом SQL и, надеюсь, будет работать.

В то время, когда вы спросили об этом, я понимаю, что у вас может не быть этой функции. nHibernate Support ticket [NH-2711] охватывал включение функции COALESCE.