Grails findAll возвращает нулевые свойства внутри «каждого» замыкания - PullRequest
0 голосов
/ 29 августа 2018

Использование findAll для получения списка контента без LocationGeoPoint. Я должен вручную получить каждый контент, потому что свойства контента (content.location) равны нулю внутри каждого замыкания. Это потому, что findAll фактически не извлекает данные из БД?

def contents = Content.findAllByLocationGeoPointIsNull()
def location
GeoPoint geoPoint
contents.each { Content content ->
    println content
    if(content.location == null) {
        content = Content.get(content.id)
    }
    location = content.location
    println content.location
    println location
    ...
    content.save()
}

Есть ли лучший способ?

1 Ответ

0 голосов
/ 29 августа 2018

Я, вероятно, неправильно понимаю вашу проблему, но вот мое предложение. Вы запрашиваете для всех LocationGeoPoint, где значение равно нулю, может быть, вам следует попробовать IsNotNull, вы можете прочитать об этом здесь http://gorm.grails.org/latest/hibernate/manual/index.html#finders, вы можете найти там и пример.

Вы можете попробовать что-то вроде этого

List<Content> contents = Content.findAllByLocationGeoPointIsNotNull()

contents.each { Content content ->
    // update logic goes here

    content.save()
}

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

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