按日期的Grails组(Grails group by date)

2019-07-29 06:26发布

我有一个域类具有日期属性。

class Transaction {
    LocalDate time
    BigDecimal amount
}

我怎样才能查询按月分组的所有交易的总和? 我不能找到一个日期范围为格姆组中的任何支持。

Answer 1:

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

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')
    }
}


文章来源: Grails group by date
标签: grails gorm