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自定义字段

如何知道 Sangria GraphQL 中对象解析器中的请求字段

MapStruct 未检测到构建器中的设置器

javascript 禁用构建器中的中心列

javascript 禁用构建器中的中心列

php 布局构建器中的facetwp注释