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())
但是 ObservableToPublisher
是 private class
所以我得到以下错误:
object ObservableToPublisher in package mongodb cannot be accessed in package akka.stream.alpakka.mongodb
如何解决?
定义 MyMongoSource
在 akka.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))
}
我遇到了与 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())
但是 ObservableToPublisher
是 private class
所以我得到以下错误:
object ObservableToPublisher in package mongodb cannot be accessed in package akka.stream.alpakka.mongodb
如何解决?
定义 MyMongoSource
在 akka.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))
}