Java 在 JPA 查询中使用 CURRENT_DATE 的示例

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/1637323/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-12 18:04:12  来源:igfitidea点击:

Example of using CURRENT_DATE in JPA query

javajpaeclipselink

提问by javydreamercsw

Can anyone point me to an example on how to use CURRENT_DATEin a JPA query?

谁能指出我如何CURRENT_DATE在 JPA 查询中使用的示例?

CURRENT_DATEis specified in JPA but I haven't been able to make it work. I always get the unexpected token [CURRENT_DATE]exception. Since it is specified in JPA all providers should comply with it right?

CURRENT_DATE在 JPA 中指定,但我无法使其工作。我总是得到unexpected token [CURRENT_DATE]例外。既然它在 JPA 中指定,所有提供者都应该遵守它,对吗?

I'm using EclipseLink 2.0 BTW.

我正在使用 EclipseLink 2.0 BTW。

采纳答案by McDowell

It can be used like so:

它可以像这样使用:

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

...where foundedis a temporal type:

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

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

Not a great example, but you get the idea. I'm using Eclipselink 1.1.2

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

回答by jitter

If you are using the Expression Frameworkthere is the Expression currentDateDate()method on the Expression(org.eclipse.persistence.expressions.Expression) object.

如果您使用的是表达式框架,则Expression currentDateDate()Expression( org.eclipse.persistence.expressions.Expression) 对象上的方法。

回答by javydreamercsw

The answer to this question was retrieving the values via JPA and then do the math in plain Java.

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