java - 使用按小时分组的 Hibernate 标准

标签 java mysql hibernate group-by hibernate-criteria

所以我的查询参数只是日期范围。

示例参数为

startDateTime = '2018-01-10 00:00:00'
endDateTime   = '2018-01-11 00:00:00'

按照该日期范围,我喜欢按日期范围内的小时对计数和金额进行分组,0 - 23 应该是小时的值。

所以下面是我的代码。

dc.add(Restrictions.ge("date", startDateTime));
dc.add(Restrictions.lt("date", endDateTime));
dc.setProjection(
    Projections.projectionList()
        .add(Projections.alias(Projections.sum("amount"), "amount"))
        .add(
            Projections.sqlProjection(
                "Cast(Count(id) as Integer) count",
                new String[]{"count"},
                new Type[]{StandardBasicTypes.INTEGER})
        )
        .add(
            Projections.sqlProjection(
                "hour(date) as date",
                new String[]{"date"},
                new Type[]{StandardBasicTypes.INTEGER})
        )       
);

结果是这样的。

[
   {
     "amount": 0.1,
     "count": 1,
     "date": 3
   }, 
   {
     "amount": 0.3,
     "count": 1,
     "date": 3
   },
   {
     "amount": 1.5,
     "count": 1,
     "date": 11
   }, 
   {
     "amount": 2.2,
     "count": 1,
     "date": 11
   },
   {
     "amount": 0.6,
     "count": 1,
     "date": 11
   }
]

知道怎么做吗?

最佳答案

您需要添加groupProperty。我不确定参数

dc.add(Restrictions.ge("date", startDateTime));
dc.add(Restrictions.lt("date", endDateTime));
dc.setProjection(
Projections.projectionList()
    .add(Projections.alias(Projections.sum("amount"), "amount"))
    .add(
        Projections.sqlProjection(
            "Cast(Count(id) as Integer) count",
            new String[]{"count"},
            new Type[]{StandardBasicTypes.INTEGER})
    )
    .add(
        Projections.groupProperty("hour(date)","date")
    )

);

关于java - 使用按小时分组的 Hibernate 标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48202991/

相关文章:

java - 使用 HQL 删除对象之间的关系

java - java中如何将对象存储在文件中?

Java: Misspell reporter using regex (如何解析拼写错误)

java - 原生比。 Protoc编译器选项

php - 处理空值和 JSON

MySQL - 获取 sum() grouped max() of group

java - spring cloud aws 项目不再有活跃的所有者了吗?

php - Json字符串解码mysql

java - 使用Spring + Hibernate/EntityManager遇到的BeanCreationException

java - Hibernate自动增量序列在删除和插入后丢失