在控制器中创建条件后,我无法创建特定字段的运行总和
我目前正在使用以下方法创建一组记录:
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')
}
}
答案 0 :(得分:5)
您可以使用投影:
def b = Tapes.createCriteria()
def yesterday = b.list() {
projections {
sum('migratedDuration')
}
}
可以找到可用的预测列表here。
答案 1 :(得分:0)
它真的是一个'运行总和',即它是在每一行增加还是你需要所有行的总和?
可以使用Projection完成所有行的总和(读取由CriteriaBuider提供的“projection”闭包的doco)。
如果它是一个运行总计,你需要在控制器中执行该操作,或者在循环结果列表中的行时查看自己。
欢呼声
利