2014-09-02 1 views
20

Я использую критерии с проекциями, чтобы получить список тегов в моем домене учетной записи. Как это:Обновление 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 для Граалей от 2.0.1 до 3.0.1

compile ":mongodb:3.0.1" 

Теперь я вижу t он после ошибки ...

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.

+0

ли вы когда-нибудь исправить или запустить это через отладчик, чтобы посмотреть, что изменилось в методе вызовов от 2.0.1 до 3.0.1? – th3morg

+0

Это немного старый вопрос, но вы попытались удалить рабочую среду Hibernate? Я знаю, что есть конфликт с Монго и Спящим. – kevingreen

+0

Привет, Пытаюсь не отвечать. Вы решили это? Возможно, вы можете ответить на свой вопрос. – Neoryder

ответ

-1

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

0

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

grails clean 
grails refresh-dependencies 

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

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

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