2011-10-06 139 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