1

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
    }
}

そのため、(MongoRecord.find() を使用して) レコードを要求すると、「setFieldFrom...」が表示されることを期待していますが、何も出力されません...

誰でもこれを行う方法を教えてもらえますか?

4

1 に答える 1

0

Mongo はBsonMetaRecord のsetFieldsFromDBObjectを find の一部として使用しているようで、各フィールドを反復処理して setFromAny を呼び出します。

于 2012-05-04T20:46:41.960 に答える