2010-05-20 15 views
6

chcę napisać następującą kwerendę jako hibernacji kryteria zapytania:Coalesce odpowiednik w kwerendzie Hibernate Criteria?

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') 

Ale nie jestem pewien, jak przerobić funkcję NVL do równowartości zapytań kryteria. Zdaję sobie sprawę, że HQL ma wyrażenie koalescencyjne, ale chcę napisać je jako zapytanie Kryteria.

Każda rada byłaby naprawdę doceniana!

Edycja: Jeśli ktokolwiek może dostarczyć kwerendę HQL, która wykonuje powyższe, może być również moim rozwiązaniem.

Odpowiedz

1

Zamiast nvl() powinieneś być w stanie użyć coalesce(). Ta funkcja jest standardem SQL i powinna mieć nadzieję, że zadziała.

W czasie, gdy o to prosiłeś, zdałem sobie sprawę, że być może funkcja ta nie była dostępna. nHibernate Support ticket [NH-2711] obejmował włączenie funkcji COALESCE.

Powiązane problemy