覆盖BsonRecord如何填充其字段

时间:2012-04-26 13:15:32

标签: scala mongodb lift

我想扩展BsonRecord类来处理它们填充的部分字段。我试图通过扩展setFieldsFrom ...方法来实现它,但它似乎不起作用......

这是我的代码:

trait NodeBsonRecord[MyType <: BsonRecord[MyType]] extends BsonRecord[MyType]
{
    self: MyType =>

    override def setFieldsFromDBObject(dbo:DBObject) =
    {
      super.setFieldsFromDBObject(dbo)
      println("setFieldsFromDBObject")
    }
    override def setFieldsFromJSON(json:String) =
    {
      val out = super.setFieldsFromJSON(json)
      println("setFieldsFromJSON")
      out
    }
    override def setFieldsFromJsonString(json:String) =
    {
      val out = super.setFieldsFromJsonString(json)
      println("setFieldsFromJsonString")
      out
    }
    override def setFieldsFromJValue(jval:JValue) =
    {
      val out = super.setFieldsFromJValue(jval)
      println("setFieldsFromJValue")
      out
    }
    override def setFieldsFromReq(req:Req) =
    {
      val out = super.setFieldsFromReq(req)
      println("setFieldsFromReq")
      out
    }
}

所以当我请求一个Record(使用MongoRecord.find())时,我希望看到一个“setFieldFrom ...”的东西,但没有打印出来......

任何人都可以告诉我该怎么做?

1 个答案:

答案 0 :(得分:0)

Mongo似乎在BsonMetaRecord中使用setFieldsFromDBObject作为find的一部分,它遍历每个字段并调用setFromAny。