6

日付プロパティを持つドメイン クラスがあります。

class Transaction {
    LocalDate time
    BigDecimal amount
}

月ごとにグループ化されたすべてのトランザクションの合計を照会するにはどうすればよいですか? GORM で日付範囲によるグループ化のサポートが見つかりません。

4

1 に答える 1

18

切り捨てられた日付のドメイン クラスに数式ベースのフィールドを追加します。

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')
    }
}
于 2012-05-04T22:31:30.263 に答える