Подтвердить что ты не робот

Модернизация Grails MongoDB GORM разбила прогнозы на свойства списка

Я использую критерии с прогнозами для получения списка тегов в домене моей учетной записи. Вот так:

def tags = Account.createCriteria().list { 
    projections { property("tags") } 
}

Моя учетная запись:

class Account {
    static mapWith = "mongo"
    List<Tag> tags
    ...
    static embedded = ['tags']
}

BuildConfig.groovy

// using grails 2.3.8
plugins {
    runtime ":hibernate:3.6.10.17"
    compile ":mongodb:2.0.1"

Это сработало, пока я не обновил плагин MongoDB GORM для grails с 2.0.1 до 3.0.1

    compile ":mongodb:3.0.1"

Теперь я вижу следующую ошибку...

The class [java.util.List] is not a known persistent type.
    at org.grails.datastore.mapping.core.AbstractSession.retrieveAll(AbstractSession.java:723)
    at org.grails.datastore.mapping.mongo.query.MongoQuery$AggregatedResultList.initializeFully(MongoQuery.java:1601)
    at org.grails.datastore.mapping.mongo.query.MongoQuery$AggregatedResultList.size(MongoQuery.java:1764)

Почему эта работа раньше, но сейчас не работает? Я не хочу переписывать все мои существующие запросы для использования структуры агрегации mongoDB.

4b9b3361

Ответ 1

Вы можете попробовать обычный

grails clean
grails refresh-dependencies

Также проверьте более новую версию вашего плагина.

Другой альтернативой является переход на этот плагин mongo, опубликованный месяц назад, который должен быть совместим с GORM для Hibernate

'org.grails.plugins:mongodb:6.0.0.M2'

Ответ 2

Вы можете избежать конфликта, удалив спящий режим из вашего диспетчера подключаемых модулей