【发布时间】:2015-10-31 16:48:47
【问题描述】:
伙计们! 我正在尝试使用 JPA(EclipseLink + Derby)按 JPQL 中的时间戳对查询结果进行分组,并将它们用于创建 Result 对象。 我的查询是:
Select new com.restaurant.entities.Report(o.timeOfOrder, count(o.id), sum(o.price))";
queryText+=" from Orders o ";
queryText+="where o.timeOfOrder BETWEEN :start AND :end";
queryText+=" group by o.timeOfOrder"
不幸的是,只有一毫秒会产生巨大的差异,因此按 o.timeOfOrder 进行简单分组是行不通的。
我试过this approach,但是我有
Internal Exception: java.sql.SQLSyntaxErrorException: Column reference 'ORDERS.TIMEOFORDER' is invalid, or is part of an invalid expression. For a SELECT list with a GROUP BY, the columns and expressions being selected may only contain valid grouping expressions and valid aggregate expressions.
或许,除了改变DB中的字段类型,还有其他的出路吗?
【问题讨论】:
-
您要分组的时间范围是什么?到天、时、分?
-
分析师可以根据UserStory选择研究周期。因此,我想,这意味着 group by 必须同时包含一组日、月和年过滤器
标签: java jpa sql-order-by derby jpql