Hibernate Grails:criteria builder中字段的总和
在控制器中创建条件之后,我不知道如何创建特定字段的运行总和 我目前正在使用以下方法创建一组记录:Hibernate Grails:criteria builder中字段的总和,hibernate,grails,controller,Hibernate,Grails,Controller,在控制器中创建条件之后,我不知道如何创建特定字段的运行总和 我目前正在使用以下方法创建一组记录: def b = Tapes.createCriteria() def yesterday = b.list(sort: 'migratedDate', order: 'asc') { between ("migratedDate", dat.minus(1), dat) } 并用 def num2 = Tapes.countByMigratedDateBe
def b = Tapes.createCriteria()
def yesterday = b.list(sort: 'migratedDate', order: 'asc') {
between ("migratedDate", dat.minus(1), dat)
}
并用
def num2 = Tapes.countByMigratedDateBetween(dat.minus(1), dat)
我的域中的一个字段是“migratedDuration”,系统以毫秒为单位返回进程的运行时。控制器中是否有方法创建此数字的总和?或者我应该通过相应的.gsp文件中的javascript来实现这一点吗
再次感谢
可怕的骇客
这很有效,谢谢
def todayTime = aa.list() {
between ("migratedDate", dat.minus(4), dat.minus(3))
projections { sum('migratedDuration')
}
}
您可以为此使用投影:
def b = Tapes.createCriteria()
def yesterday = b.list() {
projections {
sum('migratedDuration')
}
}
可以找到可用的投影列表。它真的是一个“运行总和”吗,即它是每行递增还是需要所有行的总和 所有行的总和可以通过一个投影完成(读取CriteriaBuider提供的“projections”闭包的文档) 如果它是一个运行总数,则需要在控制器中执行此操作,或者在结果列表中的行之间循环时查看自己 干杯
李谢谢!下面的操作完成了:def todayTime=aa.list(){between(“migratedDate”、dat.减号(4)、dat.减号(3))投影{sum('migratedDuration')}