Scala, Casbah: ошибки компиляции. Как выделить объект из внешней библиотеки?

Я пытаюсь написать функцию, которая записывает данные в MongoDB с помощью инструментария Casbah:

  import com.mongodb.casbah.WriteConcern
      import ...

  def saveRecord(rec: MongoDBObject) {
    mongoColl.insert(rec, WriteConcern)
  }

Casbah определяет WriteConcern как объект Scala. Я получаю следующие ошибки:

No implicit view available from Object => com.mongodb.casbah.Imports.DBObject.  

not enough arguments for method insert: (implicit dbObjView: Object => com.mongodb.casbah.Imports.DBObject, implicit concern: com.mongodb.WriteConcern, implicit encoder: com.mongodb.casbah.Imports.DBEncoder)com.mongodb.casbah.Imports.WriteResult. Unspecified value parameter dbObjView.   

Также, когда я пытаюсь просто создать экземпляр WriteConcern:

    val wc:WriteConcern = WriteConcern

Я получаю эту ошибку:

    not found: type WriteConcern

я имею import com.mongodb.casbah.WriteConcern в первых строках моего кода, почему он не найден? Как я могу создать экземпляр WriteConcen? Спасибо!

1 ответ

Решение

Добавьте импорт для необходимого implicit и вставьте так:

import com.mongodb.casbah.Imports._
mongoColl.insert(rec)

На ваш вопрос о невозможности создания экземпляра WriteConcernэто потому, что есть класс под com.mongodb и есть enum-подобный объект под com.mongodb.casbah, Это будет работать:

import com.mongodb.casbah.WriteConcern
val wc: com.mongodb.WriteConcern = WriteConcern.Normal
Другие вопросы по тегам