您好我想使用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/#!topic/scala-salat/s3Q548NM8yc
但可能存在一些圆形的方法吗?真正的问题是我有一个相当深的嵌套案例类模型,它描述了我的Mongo数据模型,我不能只将序列化改为自定义实现。
可能是我可以为Map [MyEnum.Value,Boolean]直接构建一些自定义Transformer但是如何?
答案 0 :(得分:1)
是的,您可以实现自定义转换器,它可以将存储在mongo中的String键转换为枚举对象。
请参阅:How to customize serialization behavior without annotations in Salat?