我有一個帶有日期屬性的域類。Grails按日期分組
class Transaction {
LocalDate time
BigDecimal amount
}
我如何可以查詢按月分組的所有交易的總和?在GORM中,我無法通過日期範圍找到任何支持。
我有一個帶有日期屬性的域類。Grails按日期分組
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')
}
}
注意:將CamelCase用於域屬性時,必須在sql語法中使用下劃線作爲字段名稱。例如datePhotoTaken將導致date_photo_taken – skurt
@timeMonth屬性timeMonth是否會被映射到db –
@Suganthan該屬性未在db中映射,但您必須在約束中添加'timeMonth nullable:true'以避免驗證錯誤。 –
我不知道任何格姆具體的功能,但如果它適合你 - 你可以使用數據庫特定的功能。到目前爲止,我已經對MySQL使用了「GROUP BY MONTH(time)」。 – aiolos