Hi我想使用salat将一些以枚举为键的映射序列化/取消实现到DBObject。
object MyEnum extends Enumeration {
val VAL_ONE, VAL_TWO = Value
}
case class CanBeStored(a:Enumeration.Value)
case class CanNotBeStored(a:Map[Enumeration.Value,Boolean])
// Produces exception[[ClassCastException: com.mongodb.BasicDBObject cannot be cast to scala.collection.immutable.Map]]
据我所知,使用当前版本是不可能的。https://groups.google.com/forum/#!主题/scala-salat/s3Q548NM8yc
但是,可能有什么办法可以做到这一点吗?真正的问题是,我有一个相当深的嵌套案例类模型,它描述了我的Mongo数据模型,我不能只将串行化改为自定义实现。
也许我可以直接为Map[MyEnum.Value,Boolean]构建一些自定义Transformer,但如何?
是的,您可以实现自定义转换器,它可以将存储在mongo中的String键转换为您的枚举对象。
请参阅:如何在Salat中自定义不带注释的序列化行为?