Alpakka MongoDB - 覆盖 MongoSource 实现

Alpakka MongoDB - override MongoSource implementation

我遇到了与 Alpakka MongoDB 类似的问题 - 在 MongoSource 中指定类型

所以我在解决方案中实现了自己的 MongoSource 并使用了它:

object MyMongoSource {
  def apply[T](query: Observable[T]): Source[T, NotUsed] =
    Source.fromPublisher(ObservableToPublisher(query))
}

val source: Source[Book, NotUsed] = MyMongoSource[Book](mongoDb.books.find()) 

但是 ObservableToPublisherprivate class 所以我得到以下错误:

object ObservableToPublisher in package mongodb cannot be accessed in package akka.stream.alpakka.mongodb

如何解决?

定义 MyMongoSourceakka.stream.alpakka.mongodb.scaladsl 包中:

package akka.stream.alpakka.mongodb.scaladsl

import akka.NotUsed
import akka.stream.alpakka.mongodb.ObservableToPublisher
import akka.stream.scaladsl.Source
import org.mongodb.scala.Observable

object MyMongoSource {
  def apply[T](query: Observable[T]): Source[T, NotUsed] =
    Source.fromPublisher(ObservableToPublisher(query))
}