MongoDB Java / Scala 驱动程序 - 缺少方法

发布于 2024-12-16 21:39:47 字数 397 浏览 1 评论 0原文

我正在尝试将持久层从普通的旧数据库(使用 ScalaQuery)转换为 MongoDB,但遇到了一个奇怪的问题。我使用 Casbah 驱动程序,它是官方 MongoDB Java 驱动程序的 Scala 包装器。 Java 和 Scala 驱动程序都定义 - 根据文档和 .jar 当我在 Eclipse 中打开它时的概述 - 一个方法 findOneById 接受单个 DBObject 作为参数(其中包含 ID)。

但是,当我尝试访问它时,我在 Eclipse 和 SBT 中都从 Scala 编译器中收到丢失方法异常 - Scala 版本 2.9.0-1、SBT 0.10.1。

什么可能导致这种情况?这可能是一个已知的 SBT/Scala 编译器错误吗?

我刚刚删除了整个存储库,以便重新下载所有依赖项,但这并没有解决问题。

I'm trying to convert a persistence layer from a plain old database (using ScalaQuery) to MongoDB, and I'm running into an odd issue. I use the Casbah driver, which is a Scala wrapper around the official MongoDB Java driver. Both the Java and Scala driver define - according to the docs and the overview of the .jar when I open it in Eclipse - a method findOneById that takes a single DBObject as parameter (with an ID in it).

However, when I try to access it, I get a missing method exception from the Scala compiler, both in Eclipse and SBT - Scala version 2.9.0-1, SBT 0.10.1.

What might cause this? Is this perhaps a known SBT / Scala compiler bug?

I just removed my entire repository so all dependencies get downloaded freshly, but this didn't fix the problems.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

沧桑㈠ 2024-12-23 21:39:47

您确定在 MongoCollection 实例上调用 findOneById 吗?

也许是参数类型错误,正如我在文档中看到的那样(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)。也许该方法的签名自先前版本以来发生了变化。

希望这会有所帮助。

Are you sure that you call findOneById on a MongoCollection instance ?

Maybe it's the parameter type that is wrong, as I can see on the documentation (http://api.mongodb.org/scala/casbah/2.1.2/scaladoc/com/mongodb/casbah/MongoCollection.html), findOneById should take an Id of type AnyRef and optionnaly the fields to return.

You should try something like mongoCollection.findOneByID(1.asInstanceOf[Object]).

Regarding BBObject, it seems that it doesn't appear in the list of parameter (except as an implicit parameter useful to convert the fields that you request to a DBObject). Maybe the signature of the method changed since a previous release.

Hope this will help.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文