Grails:标准构建器中的字段总和
Posted
技术标签:
【中文标题】Grails:标准构建器中的字段总和【英文标题】:Grails: sum of field within criteria builder 【发布时间】:2011-04-20 23:02:09 【问题描述】:在控制器中创建标准后,我不知道如何创建特定字段的运行总和
我目前正在使用以下方法创建一组记录:
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')
【问题讨论】:
【参考方案1】:您可以为此使用投影:
def b = Tapes.createCriteria()
def yesterday = b.list()
projections
sum('migratedDuration')
可以在here找到可用的投影列表。
【讨论】:
【参考方案2】:它真的是一个“运行总和”,即它是在每一行上递增还是你需要所有行的总和?
可以使用 Projection 对所有行进行求和(阅读 CriteriaBuider 提供的“projections”闭包的文档)。
如果是运行总计,您需要在控制器中执行此操作,或者在遍历结果列表中的行时查看自己。
干杯
李
【讨论】:
谢谢!以下是成功的方法: def todayTime = aa.list() between ("migratedDate", dat.minus(4), dat.minus(3)) projections sum('migratedDuration')以上是关于Grails:标准构建器中的字段总和的主要内容,如果未能解决你的问题,请参考以下文章
php 带有附件ID的布局构建器中的facetwp自定义字段