Grails: сумма полей в критериях построения - PullRequest
3 голосов
/ 04 октября 2010

Я не знаю, как создать текущую сумму определенного поля после создания критериев в контроллере

В настоящее время я создаю набор записей, используя:

    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», система возвращает время выполнения процесса в миллисекундах.Есть ли способ в контроллере создать сумму этого числа?Или я должен сделать это через javascript в соответствующем файле .gsp?

Еще раз спасибо,

ужасно ужасный хак

Это сработало отлично, спасибо

def todayTime = aa.list() { 
    between ("migratedDate", dat.minus(4), dat.minus(3)) 
    projections { sum('migratedDuration') 
    } 
}

Ответы [ 2 ]

5 голосов
/ 04 октября 2010

Вы можете использовать проекцию для этого:

def b = Tapes.createCriteria()
def yesterday = b.list() {
    projections {
        sum('migratedDuration')
    }
}

Список доступных прогнозов можно найти здесь .

0 голосов
/ 04 октября 2010

Действительно ли это «текущая сумма», т.е. она увеличивается в каждой строке или вам нужна сумма по всем строкам?

Сумма по всем строкам может быть получена с помощью проекции (прочитайте документацию для закрытия "проекций", предоставленного CriteriaBuider).

Если это промежуточный итог, вам нужно будет сделать это в контроллере или просмотреть себя, пока вы просматриваете строки в списке результатов.

ура

Lee

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...