2011-10-06 49 views
5

Tôi tự hỏi làm thế nào để sử dụng ngày tháng trong ngôn ngữ truy vấn Hibernate. Tôi đã làm như sau trong dự án JPA của tôi (như Eclipselink nhà cung cấp) và nó hoạt động.Ngày tháng trong Hibernate

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

Nhưng điều này không hoạt động khi tôi thay đổi Hibernate (V 3.6.7) làm nhà cung cấp cho dự án JPA của tôi.

+4

Những gì bạn trích dẫn có cú pháp JPA hợp lệ (xem phần đặc tả JPA2 4.6.1 - "JDBC escape sy ntax "). Nếu Hibernate không hỗ trợ nó thì đó là một lỗi trong Hibernate, và nên được nâng lên như vậy. – DataNucleus

+0

@DataNucleus Tôi đồng ý với bạn. Theo lời hứa của Hibernate để hỗ trợ JPA, họ phải hỗ trợ cú pháp này. Nhưng Hibernate dường như hỗ trợ ngày tháng là 'yyyy-mm-dd' thay vì {d 'yyyy-mm-dd'} – siva636

+0

Chúng tôi đang sử dụng Hibernate ** V3.6.8 ** trong một dự án và cú pháp JPA hợp lệ này không ' t làm việc không. – Stephan

Trả lời

2

Các reference documentation nói:

Thuật ngữ dùng trong mệnh đề where bao gồm:
[...]

  • SQL literals 'foo', 69 tuổi, 6.66E + 2, '1970-01-01 10: 00: 01.0'
+0

Sử dụng chữ cái ngày là 'yyyy-mm-dd' làm việc cho tôi (nhưng đây là cách không chuẩn) – siva636

Các vấn đề liên quan