0

我想写一个基于 2 列计算的谓词。例如 - 我有一个 daysBetween (int) 和 lastSent (date)。

我想知道是否有可能执行以下查询:

从 X 中选择 last_sent + [其他一些间隔的列] lessThan now()

类似于(我现在这不是写它的正确方法..),

builder.between(userData.<Date>get("lastSent").addDays(userIntervals.<Integer>get("interval")),DateUtils.now());

有没有使用谓词编写这样的查询?

4

1 回答 1

0

JPA Criteria 没有定义 addDays() API。您可以通过 function() API 调用特定于数据库的函数,

见, http ://en.wikibooks.org/wiki/Java_Persistence/Criteria#Special_Operations

一些 JPA 提供程序提供对 JPQL 和 Criteria 的扩展。

见, http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/Criteria#JpaCriteriaBuilder_and_EclipseLink_Extensions

和,

http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/JPQL#EclipseLink_Extensions_.28EQL.29

于 2013-02-04T14:48:12.583 回答