Обновление 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.
2 ответа
Вы можете попробовать обычные
grails clean
grails refresh-dependencies
Также проверьте наличие более новой версии вашего плагина.
Другой альтернативой является переход на этот плагин Mongo, опубликованный месяц назад, который должен быть совместим с GORM для Hibernate.
'org.grails.plugins:mongodb:6.0.0.M2'
Вы можете избежать конфликта, удалив hibernate из вашего менеджера плагинов