MongoDB Java / Scala драйверы - недостающие методы - PullRequest
2 голосов
/ 18 ноября 2011

Я пытаюсь преобразовать постоянный слой из простой старой базы данных (используя ScalaQuery) в MongoDB, и у меня возникла странная проблема.Я использую драйвер Casbah, который является оболочкой Scala для официального драйвера MongoDB Java.Драйверы Java и Scala определяют - согласно документам и обзору .jar, когда я открываю его в Eclipse - метод findOneById, который принимает один DBObject в качестве параметра (с идентификатором в нем).

Однако, когда я пытаюсь получить к нему доступ, я получаю исключение отсутствующего метода от компилятора Scala, как в Eclipse, так и в SBT - Scala версии 2.9.0-1, SBT 0.10.1.

Что может вызвать это?Возможно, это известная ошибка компилятора SBT / Scala?

Я только что удалил весь свой репозиторий, чтобы все зависимости были загружены заново, но это не решило проблемы.

1 Ответ

0 голосов
/ 18 ноября 2011

Вы уверены, что звоните findOneById в MongoCollection случае?

Может быть, это неправильный тип параметра, как я вижу в документации (http://api.mongodb.org/scala/casbah/2.1.2/scaladoc/com/mongodb/casbah/MongoCollection.html), findOneById должен взять Id типа AnyRef и необязательно поля для возврата.

Вы должны попробовать что-то вроде mongoCollection.findOneByID(1.asInstanceOf[Object]).

Что касается BBObject, то, похоже, его нет в списке параметров (кроме как неявного параметра, полезного для преобразования запрашиваемых полей в DBObject). Возможно, подпись метода изменилась со времени предыдущего выпуска.

Надеюсь, это поможет.

...