在Play應用程式,使用薩拉特和卡斯巴,我想反序列化一個DBObject
爲Task
類型的對象,但調用時.asObject
我收到此錯誤:卡斯巴:無隱觀的錯誤
沒有隱式視圖可從com.mongodb.casbah.Imports.DBObject => com.mongodb.casbah.Imports.MongoDBObject。涉及默認參數的 應用程序發生錯誤。
該對象與.asDBObject
正確序列化,並按預期寫入數據庫。
什麼是造成這種行爲,以及可以做些什麼來解決它?下面是涉及到的型號:
package models
import db.{MongoFactory, MongoConnection}
import com.novus.salat._
import com.novus.salat.global._
import com.novus.salat.annotations._
import com.mongodb.casbah.Imports._
import com.mongodb.casbah.commons.Imports._
import play.api.Play
case class Task(label: String, _id: ObjectId=new ObjectId)
object Task {
implicit val ctx = new Context {
val name = "Custom_Classloader"
}
ctx.registerClassLoader(Play.classloader(Play.current))
val taskCollection = MongoFactory.database("tasks")
def create(label: String): Task = {
val task = new Task(label)
val dbObject = grater[Task].asDBObject(task)
taskCollection.save(dbObject)
grater[Task].asObject(dbObject)
}
def all(): List[Task] = {
val results = taskCollection.find()
val tasks = for (item <- results) yield grater[Task].asObject(item)
tasks.toList
}
}
版本上創建自定義背景
casbah: "2.8.1"
scala: "2.11.6"
salat: "1.9.9"
錯字或錯誤:'com.mongodb.casbah.Imports._' DEP的雙進口。 – DaunnC
是的,這是一個錯字:)但錯誤不是由此造成的。 – memoizr