Как рассчитать в Grails/быть в спящем режиме: Message.countBy

Похоже, что использовался компилятор машинописного текста до версии 2.4, где они добавили поддержку строковых значений в перечислениях. Обычно происходит обратное отображение значений в перечисления, а значения обычно являются числами. Но если вы попытаетесь использовать строки до 2.4, компилятор не будет знать, что с этим делать (и на самом деле вызовет ошибки), но все равно будет генерировать источник.

Сравните 2,4:

var Sizes;
(function (Sizes) {
    Sizes["Tiny"] = "Tiny";
    Sizes["VerySmall"] = "Very Small";
    Sizes["Small"] = "Small";
    Sizes["Medium"] = "Medium";
    Sizes["Large"] = "Large";
    Sizes["VeryLarge"] = "Very Large";
})(Sizes || (Sizes = {}));

С 2,3:

var Sizes;
(function (Sizes) {
    Sizes[Sizes["Tiny"] = "Tiny"] = "Tiny";
    Sizes[Sizes["VerySmall"] = "Very Small"] = "VerySmall";
    Sizes[Sizes["Small"] = "Small"] = "Small";
    Sizes[Sizes["Medium"] = "Medium"] = "Medium";
    Sizes[Sizes["Large"] = "Large"] = "Large";
    Sizes[Sizes["VeryLarge"] = "Very Large"] = "VeryLarge";
})(Sizes || (Sizes = {}));

И 2,3 без строковых значений:

var Sizes;
(function (Sizes) {
    Sizes[Sizes["Tiny"] = 0] = "Tiny";
    Sizes[Sizes["VerySmall"] = 1] = "VerySmall";
    Sizes[Sizes["Small"] = 2] = "Small";
    Sizes[Sizes["Medium"] = 3] = "Medium";
    Sizes[Sizes["Large"] = 4] = "Large";
    Sizes[Sizes["VeryLarge"] = 5] = "VeryLarge";
})(Sizes || (Sizes = {}));

Если вы хотите принудительно выполнить обратное отображение в версии 2.4 и выше вы можете присвоить значения any.

enum Sizes {
  Tiny = <any>"Tiny",
  VerySmall = <any>"Very Small",
  Small = <any>"Small",
  Medium = <any>"Medium",
  Large = <any>"Large",
  VeryLarge = <any>"Very Large"
}

Просто назовите это функцией.

5
задан Rob Hruska 30 July 2010 в 14:13
поделиться

1 ответ

Смотря на динамическую ссылку метода, лучшее, которое можно, вероятно, сделать, использовать executeQuery вместо count*:

Message.executeQuery('select count(m) from Message m where SIZE(m.body) < 25')

Править: Вот несколько ссылок, которые могли бы помочь с записью/выполнением запроса:

13
ответ дан 18 December 2019 в 14:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: