我正在尝试在我的域类中编写公式,这有助于我创建标准。
class MyClass {
//some fields
Date appointmentTime
String ddmmyy
int year
int month
int day
static transients = [
'ddmmyy',
'year',
'month',
'day'
]
static mapping= {
ddmmyy formula('DATE_FORMAT(appointmentTime)')
year formula('YEAR(appointmentTime)')
month formula('MONTH(appointmentTime)')
day formula('DAYOFMONTH(appointmentTime)')
}
}
Run Code Online (Sandbox Code Playgroud)
每当我尝试在我的标准中使用此字段时,它都会抛出错误,即无法解析“myClass”的属性“ddmmyy”。
我的标准是:
Date myDate = Calender.instance.time
def results = MyClass.createcriteria().list{
lt('appointmentTime', date+1)
ge('appointmentTime', date)
projections {
groupProperty('ddmmyy')
count('id')
}
}
Run Code Online (Sandbox Code Playgroud)
知道为什么我会因此获得例外吗?
grails grails-orm grails-domain-class grails-2.0 grails-services
我有一个域类(缩小)为: -
class Expense {
Date dateOfExpense
int amount
}
Run Code Online (Sandbox Code Playgroud)
我试图获得按周/月/费用日期分组的金额总和.参考grails doc http://grails.org/doc/latest/guide/GORM.html中的 'sqlGroupProjection'方法,
我尝试使用以下代码: -
def results = c {
between("dateOfExpense", fromDate, toDate)
projections {
sqlGroupProjection 'dateOfExpense,sum(amount) as summed',
'MONTH(dateOfExpense)',['date','summed'],[DATE,NUMBER]
}
}
Run Code Online (Sandbox Code Playgroud)
抛出异常:
No such property: DATE for class: grails.orm.HibernateCriteriaBuilder. Stacktrace follows:
Message: No such property: DATE for class: grails.orm.HibernateCriteriaBuilder
Run Code Online (Sandbox Code Playgroud)
请建议使用sqlGroupProjection方法的方法