我正在将现有代码Rogue 1.1.8
从.2.0.0
lift-mongodb-record
2.4-M5 to 2.5
我在编写MongoCaseClassField
包含 scala 枚举的内容时遇到了困难,我真的可以使用一些帮助。
例如,
object MyEnum extends Enumeration {
type MyEnum = Value
val A = Value(0)
val B = Value(1)
}
case class MyCaseClass(name: String, value: MyEnum.MyEnum)
class MyMongo extends MongoRecord[MyMongo] with StringPk[MyMongo] {
def meta = MyMongo
class MongoCaseClassFieldWithMyEnum[OwnerType <: net.liftweb.record.Record[OwnerType], CaseType](rec : OwnerType)(implicit mf : Manifest[CaseType]) extends MongoCaseClassField[OwnerType, CaseType](rec)(mf) {
override def formats = super.formats + new EnumSerializer(MyEnum)
}
object myCaseClass extends MongoCaseClassFieldWithMyEnum[MyMongo, MyCaseClass](this)
/// ...
}
当我们尝试写入该字段时,我们收到以下错误:
找不到 com.foursquare.rogue.BSONType[MyCaseClass] .and(_.myCaseClass setTo myCaseClass) 类型的证据参数的隐式值
我们曾经在 Rogue 1.1.8 中使用我们自己的版本MongoCaseClassField
,这使得 #formats 方法可以覆盖。但是该功能已包含在 2.5-RC6 中的 lift-mongodb-record 中,所以我们认为这应该现在就可以工作了吗?