在JPA查询中使用CURRENT_DATE的示例

时间:2009-10-28 13:42:48

标签: java jpa eclipselink

有人能指出一个关于如何在JPA查询中使用CURRENT_DATE的示例吗?

JPA中指定了

CURRENT_DATE,但我无法使其正常工作。我总是得到unexpected token [CURRENT_DATE]例外。由于JPA中规定了所有提供商都应该遵守它吗?

我正在使用EclipseLink 2.0 BTW。

3 个答案:

答案 0 :(得分:16)

可以像这样使用:

Query query = manager
    .createQuery("SELECT c FROM CITIES c WHERE c.founded = CURRENT_DATE");
for (Object city : query.getResultList()) {
  System.out.println(city);
}

...其中成立是一种时间类型:

  @Column(name = "FOUNDED")
  @Temporal(TemporalType.DATE)
  private Date founded = new Date();

不是一个很好的例子,但你明白了。我正在使用Eclipselink 1.1.2

答案 1 :(得分:4)

这个问题的答案是通过JPA检索值,然后用普通Java进行数学运算。

答案 2 :(得分:3)

如果您使用Expression Framework Expression currentDateDate()Expression)对象上有org.eclipse.persistence.expressions.Expression方法。