2011-10-06 138 views
5

我想知道如何在Hibernate查詢語言中使用日期文字。我在我的JPA項目(如Eclipselink的提供者)中做了如下工作,它工作。休眠日期文字

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

但是當我改變休眠(V 3.6.7)作爲供應商對我的JPA項目,這是行不通的。

+4

你報什麼有有效JPA語法(見JPA2規範第4.6.1節 - 「JDBC轉義SY ntax「)。如果Hibernate不支持它,那麼它就是Hibernate中的一個bug,應該像那樣提出來。 – DataNucleus

+0

@DataNucleus我同意你的意見。根據Hibernate支持JPA的承諾,他們必須支持這種語法。但Hibernate似乎支持日期字面量爲'yyyy-mm-dd'而不是{d'yyyy-mm-dd'} – siva636

+0

我們在項目中使用Hibernate ** V3.6.8 **,並且此有效的JPA語法不會'不工作。 – Stephan

回答

2

reference documentation表示:在所使用的

表達式where子句包括以下內容:
[...]

  • SQL文字 '富',69,6.66E + 2, '1970-01-01 10:00:01.0'
+0

使用日期文字'yyyy-mm-dd'適用於我(但這是一種非標準的方式) – siva636