2016-12-13 5 views
1

В моих good'ol Граалей (3.1.x) приложение у меня есть такие строкиGORM автономный: нет updateOne() с картами

ModuleState.collection.updateOne( 
    [ compositeKey:ck ], 
    [ $set:[ compositeKey:ck, dateUpdated:new Date(), online:true ] ], 
    [ upsert:true ]) 

В моем Grails-бесплатное приложение с GORM standalone:

compile 'org.grails:grails-datastore-gorm-mongodb:6.0.4.RELEASE' 

эта линия бросает исключение

groovy.lang.MissingMethodException: нет подписи метода: com.mongodb.MongoCollectionImpl.updateOne() применяется для аргумента типы: (java.util.LinkedHashMap, java.util.LinkedHashMap, java.util.LinkedHashMap) значения: [[compositeKey: 111], [$ set: [...]], ...] Возможные решения: updateOne (org.bson.conversions.Bson, org.bson.conversions.Bson), updateOne (org.bson.conversions.Bson, org.bson.conversions.Bson, com.mongodb.client.model.UpdateOptions)

так что новые способы использования карт не вводятся.

Любой способ исправить это и снова сделать GORM?

+0

Почему мы используем карты? Я имею в виду, что оператор $ set принимает пару значений поля правильно? Вы пытаетесь передать все ключевые значения сразу? вы можете легко обернуть ключевое значение в качестве объекта bson. – Veeram

ответ

1

Вам нужно добавить org.grails:grails-datastore-gorm-mongodb-ext:6.0.4.RELEASE к вашему

классам

 Смежные вопросы

  • Нет связанных вопросов^_^