Grails按日期分组

时间:2012-05-04 20:03:54

标签: grails gorm

我有一个带有日期属性的域类。

class Transaction {
    LocalDate time
    BigDecimal amount
}

如何查询按月分组的所有交易的总和?我无法通过GORM中的日期范围找到任何对群组的支持。

1 个答案:

答案 0 :(得分:17)

为截断日期的域类添加基于公式的字段:

class Transaction {
    LocalTime time
    BigDecimal amount
    String timeMonth

    static mapping = {
        timeMonth formula: "FORMATDATETIME(time, 'yyyy-MM')" // h2 sql
        //timeMonth formula: "DATE_FORMAT(time, '%Y-%m')"   // mysql sql
    }
}

然后你就可以运行这样的查询:

Transaction.withCriteria {
    projections {
        sum('amount')
        groupProperty('timeMonth')
    }
}