2012-04-26 110 views
1

我想延長BsonRecord類來處理一些它的領域,當他們填寫。我試圖做到這一點通過擴展setFieldsFrom ...方法,但它不「T似乎工作...覆蓋一個BsonRecord在其領域如何填充

這裏是我的代碼:

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。 ..」的事情,但沒有什麼是打印出來......

任何人都可以告訴我如何做到這一點?

回答

0

蒙戈似乎使用setFieldsFromDBObject在BsonMetaRecord作爲查找的一部分,它遍歷每個字段並調用setFromAny。

+0

是的,這是由setFieldsFromDBObject領域的實例調用:'高清setFieldsFromDBObject(...)= BsonMetaRecord.setFieldsFromDBObject(這一點,...)'。所以,我認爲我的壓倒一切應該做的工作,但它不... 我發現了另一種方法來解決我的問題,所以我不需要這樣做了,但如果有人想嘗試,它可能是有用的... – xurei 2012-05-07 08:23:36