Grails 按日期分组

标签 grails grails-orm

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

class Transaction {
    LocalDate time
    BigDecimal amount
}

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

最佳答案

将基于公式的字段添加到域类中以获取截断日期:

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 按日期分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10455409/

相关文章:

Grails:使用 java 命令启动 grails war 时如何定义配置文件?

grails - 我如何在 Grails 中阅读电子邮件?

grails - 在datasource.groovy中使用编解码器规范隐藏数据库密码不起作用

mongodb - GORM 在 Grails 中使用 MongoDB 按 ID 获取/查找资源

mongodb - 升级 Grails MongoDB GORM 打破了对列表属性的预测

grails - Grails重定向,转发和渲染更改 View ,并显示Grails标语/模板

Grails 域有很多建模

Grails addTo* 与数据库的结果

hibernate - 如何在 Grails 中持久保存枚举集合?

Grails域类实现接口(interface)后没有setter方法