Grails 3.1 - 找不到域 class 的编解码器
Grails 3.1 - Can't find codec for domain class
我无法将域 class 转换为基本数据库对象。
下面是我的代码:
def update_val
class_object.class.withNewSession { MongoCodecSession m ->
update_val = m.pendingUpdates.find {
it.key.name == d.class.getName()
}.value[0]nativeEntry.regions[0]."${instance.getDbKey()}"[0]
}
在 findOneAndUpdate 函数下方,出现错误:"Can't find a codec for class class.domain"。 updateVal 作为域 Class 对象返回。
ClassName.class.findOneAndUpdate(new BasicDBObject(findVal), new BasicDBObject(updateval))
我正在将它从 Grails 3.0 转换到 Grails 3.1,这里 nativeEntry 作为域返回 class 而在以前的版本中,nativeEntry 作为 BasicDBObject 返回。
任何解决方案?
我将 Grails 3.1 与 gorm 5.0 和 mongodb 3.4
一起使用
我已经解决了。将以下解决方案添加到 Application.yml
grails:
mongodb:
engine: mapping
它将MongoCodecSession转换为之前的MongoSession。
与在编解码器中一样,对象不再首先转换为 MongoDB 文档对象,然后再转换为 Groovy 对象,而是驱动程序直接从驱动程序的 JSON 流中读取 Groovy 对象级别,效率远高于之前的MongoSession
我无法将域 class 转换为基本数据库对象。 下面是我的代码:
def update_val
class_object.class.withNewSession { MongoCodecSession m ->
update_val = m.pendingUpdates.find {
it.key.name == d.class.getName()
}.value[0]nativeEntry.regions[0]."${instance.getDbKey()}"[0]
}
在 findOneAndUpdate 函数下方,出现错误:"Can't find a codec for class class.domain"。 updateVal 作为域 Class 对象返回。
ClassName.class.findOneAndUpdate(new BasicDBObject(findVal), new BasicDBObject(updateval))
我正在将它从 Grails 3.0 转换到 Grails 3.1,这里 nativeEntry 作为域返回 class 而在以前的版本中,nativeEntry 作为 BasicDBObject 返回。 任何解决方案? 我将 Grails 3.1 与 gorm 5.0 和 mongodb 3.4
一起使用我已经解决了。将以下解决方案添加到 Application.yml
grails:
mongodb:
engine: mapping
它将MongoCodecSession转换为之前的MongoSession。 与在编解码器中一样,对象不再首先转换为 MongoDB 文档对象,然后再转换为 Groovy 对象,而是驱动程序直接从驱动程序的 JSON 流中读取 Groovy 对象级别,效率远高于之前的MongoSession