Actualización de Grails MongoDB GORM rompió las proyecciones en las propiedades de la lista
gorm-mongodb (2)
Estoy utilizando Criterios con proyecciones para obtener una lista de etiquetas en mi dominio de Cuenta. Me gusta esto:
def tags = Account.createCriteria().list {
projections { property("tags") }
}
Dominio de mi cuenta:
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"
Esto funcionó hasta que actualicé el plugin MongoDB GORM para grails de 2.0.1 a 3.0.1
compile ":mongodb:3.0.1"
Ahora veo el siguiente error ...
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)
¿Por qué funcionó antes pero ahora está fallando? No quiero volver a escribir todas mis consultas existentes para usar el marco de agregación de mongoDB.
Puede evitar el conflicto eliminando la hibernación de su administrador de complementos
Puedes probar lo habitual
grails clean
grails refresh-dependencies
También busque una versión más nueva de su complemento.
Otra alternativa es cambiar a este complemento de Mongo publicado hace un mes, que se supone es compatible con GORM para Hibernate.
''org.grails.plugins:mongodb:6.0.0.M2''