Mam dwa pola wyszukiwania daty, a mianowicie zi do. Muszę pobrać rekordy z tabeli użytkowników, których startDate leży między datami od i do wpisanych w polach wyszukiwania i jeśli daty od i do są zerowe, muszę pobrać wszystkie rekordy z tabeli użytkownika.Jak dynamicznie wyszukiwać między dwoma datami w hql?
Próbowałem następującą kwerendę HQL:
FROM USER
WHERE
:start_flag =1
OR
STARTDATE between :from and :to
Tutaj start_flag jest typu int, który jest ustawiony na 1, jeżeli zi są nieważne.
query.setParameter("from",startDt);
query.setParameter("to",endDt);
query.setParameter("start_flag",startFlag);
l= query.list();
Oto typy danych są następujące:
startDt - java.util.Date
endDt- java.util.Date
startFlag- int
Kiedy uruchamiam powyższe zapytanie z do iz równym zeru Otrzymuję następujący wyjątek:
SQL Error: 932, SQLState: 42000
ORA-00932: niespójne datatypes: Przewidywana data dostał BINARY
mógłbyś mi powiedzieć jak napisać kwerendę HQL Aby osiągnąć powyższe funkcjonalności?
Próbowałaś 'setDate' (lub coś podobnego) zamiast' setParameter'? Czy typy dat są poprawnie odwzorowane na kolumnę daty (lub czy przypadkowo została zserializowana)? –
Nie Nie wypróbowałem setDate() ale domyślam się, że setParameteer() powinien działać – user2077648
W moim doświadczeniu z NHibernate, to nie działa. –