Morphia に Scala クラスを格納する必要があります。注釈を使用すると、 _ <: Enumerationのコレクションを保存しようとしない限り、うまく機能します
Morphia は、そのタイプのシリアライザーがないことを訴えています。今のところ、コレクションのタイプをSeq[String]に変更し、コレクション内のすべてのアイテムに対してtoStringを呼び出すことで埋めます。
それはうまくいきますが、それが正しい方法かどうかはわかりません。
この問題は、MongoDB の上部にある利用可能ないくつかの抽象化レイヤーに共通しています。それはすべて基本的な理由に戻ります: json/bson には同等の列挙型はありません。たとえば、Salatにも同じ問題があります。
実際、 MongoDB Java ドライバーは、ここで進行中の議論で読むことができるように、列挙型をサポートしていません: https://jira.mongodb.org/browse/JAVA-268問題がまだ未解決であることがわかります。Java で MongoDB を使用するフレームワークのほとんどは、このような低レベルの機能を実装していません。この選択は非常に理にかなっていると思います。なぜなら、低レベル ドライバーによって処理されないデータ構造をどのように処理するかを強制するのではなく、その処理方法を選択できるからです。
一般的に、サポートがないのは技術的な制限によるものではなく、設計上の選択によるものだと思います。列挙型の場合、それらを長所と短所にマッピングする方法は複数ありますが、他のデータ型の場合はおそらくより簡単です。MongoDB Java ドライバーの詳細はわかりませんが、複数の「モード」をサポートするにはリファクタリングが必要だったのではないでしょうか (それが新しいバージョンのシリアライゼーションについて話しているのかもしれません)。
これらは私が考えている2つの戦略です。
結論として、ネイティブ オブジェクトと MongoDB の間に中間データ構造を追加しても問題はありません。Salat は CustomTransformers を介してサポートしています。Morphia では、明示的に変換を行う必要があるかもしれません。頑張れ。