मैं से मौजूदा कोड का उन्नयन कर रहा हूँ Rogue 1.1.8
करने के लिए 2.0.0
और lift-mongodb-record
से 2.4-M5 to 2.5
।
मुझे यह लिखने में कठिनाई हो रही है MongoCaseClassField
कि इसमें एक स्कैनल एनम है, जो मैं वास्तव में कुछ मदद का उपयोग कर सकता हूं।
उदाहरण के लिए,
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 [MyCClClass] .and (_। myCaseClass setTo myCaseClass) के साक्ष्य पैरामीटर के लिए अंतर्निहित मान नहीं मिल सका।
हम अपने स्वयं के संस्करण का उपयोग करते हुए, दुष्ट 1.1.8 में यह काम करते थे MongoCaseClassField
, जिसने #formats विधि को अधिक महत्वपूर्ण बना दिया था। लेकिन उस सुविधा को 2.5-RC6 में लिफ्ट-मोंगोडब-रिकॉर्ड में शामिल किया गया था, इसलिए हमने सोचा कि यह अभी काम करना चाहिए?