2

(ScalaQuery を使用して) 単純な古いデータベースから MongoDB に永続化レイヤーを変換しようとしていますが、奇妙な問題が発生しています。公式の MongoDB Java ドライバーの Scala ラッパーである Casbah ドライバーを使用します。Java と Scala の両方のドライバーは、Eclipse で開いたときの .jar のドキュメントと概要によると、単一の DBObject をパラメーターとして (ID を含む) メソッド findOneById を定義します。

ただし、それにアクセスしようとすると、Eclipse と SBT の両方で Scala コンパイラから欠落メソッド例外が発生します - Scala バージョン 2.9.0-1、SBT 0.10.1。

何が原因でしょうか? これはおそらく既知の SBT / Scala コンパイラのバグですか?

リポジトリ全体を削除したので、すべての依存関係が新たにダウンロードされましたが、これで問題は解決しませんでした。

4

1 に答える 1

0

インスタンスを呼び出しfindOneByIdてもよろしいですか?MongoCollection

ドキュメント(http://api.mongodb.org/scala/casbah/2.1.2/scaladoc/com/mongodb/casbah/MongoCollection.html)でわかるように、間違っているのはパラメーターの型かもしれfindOneByIdません。タイプ AnyRef の Id と、オプションで返されるフィールド。

のようなものを試してみてくださいmongoCollection.findOneByID(1.asInstanceOf[Object])

に関してBBObjectは、パラメーターのリストには表示されないようです (要求したフィールドを に変換するのに役立つ暗黙のパラメーターを除いてDBObject)。メソッドのシグネチャが以前のリリースから変更された可能性があります。

これが役立つことを願っています。

于 2011-11-18T16:19:01.213 に答える