2016-07-27 14 views
1

こんにちは私はシリアル化する/ desalalise DBObjectにいくつかのマップを列挙してsalatを使用してキーとしてしたいと思います。salat serialize Map [Enum、Boolean] type

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を直接ビルドすることはできますか?

答えて

1

はい、mongoに格納されているStringキーをenumオブジェクトに変換できるカスタムトランスフォーマを実装できます。

参照:How to customize serialization behavior without annotations in Salat?

+0

おかげで、私は図書館のようなものの、マクロで自分のサラッを実装することを決めた。https://github.com/martende/mondao – Oleg

関連する問題