JPA Criteria Builder

时间:2012-11-08 13:31:37

标签: jpa-2.0 jpql

目前,我正在做一些JPA的东西,但有一些问题,如下所述

表格结构 -

Id(Integer) , StatusType(String) , CreationTime(TimeStamp)

我想提取 StatusType Count(StatusType) CreationTime [GROUP BY] (Cast in Date instead of TimeStamp)

如果CreationTime在TimeStamp中分组,则由于时间戳的唯一性而没有进行分组

我有一个SQL查询可以解决我的目的 - Select StatusType , Count(*) , Date(CreationTime) from Table Group By Date(CreationTime)

它将时间戳转换为日期& CreationTime组, 但我希望这与 CriteriaBuilder API或至少在 JPQL查询中一起使用,以便适用于所有数据库。有什么想法吗?

提前致谢。

2 个答案:

答案 0 :(得分:3)

您可以使用以下命令将时间戳转换为具有“yyyyMMdd”格式的整数:

year(CreateTime) * 10000 + month(CreateTime) * 100 + day(CreateTime)

答案 1 :(得分:3)

是的,timeStamp可以使用JPQL投放到Date

我认为this blog post会解决您的问题。