2012-04-26 78 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