2011-10-06 15 views
5

Zastanawiam się, jak używać literałów daty w języku zapytań Hibernuj. W moim projekcie JPA zrobiłem: (jako dostawcę Eclipselink) i działa.Literały dat w Hibernate

SELECT m FROM Me m WHERE m.dob <= {d '1984-10-06'} 

Ale to nie działa, gdy zmienię Hibernate (V 3.6.7) jako dostawcę dla mojego projektu JPA.

+4

Co cytujesz jest prawidłowa składnia JPA (patrz JPA2 sekcję niespełniającego 4.6.1 - „ucieczka sy JDBC ntax "). Jeśli Hibernate nie obsługuje go, to jest to błąd w Hibernate i powinien zostać podniesiony. – DataNucleus

+0

@DataNucleus Zgadzam się z tobą. Zgodnie z obietnicą Hibernate do wspierania JPA, muszą obsługiwać tę składnię. Ale Hibernate wydaje się wspierać literał daty jako "yyyy-mm-dd" zamiast {d 'rrrr-mm-dd'} – siva636

+0

Używamy Hibernate ** V3.6.8 ** w projekcie i ta poprawna składnia JPA doesn ' t nie działa. – Stephan

Odpowiedz

2

reference documentation mówi:

Określenia użyte w którym punkt obejmują:
[...]

  • SQL literale 'foo', 69 6.66E + 2, '1970-01-01 10: 00: 01,0'
+0

Używanie literału daty jako "yyyy-mm-dd" działa dla mnie (ale jest to niestandardowy sposób) – siva636