既存のコード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に含まれていたので、これでうまくいくと思いましたか?