className
を明示的に無効にすることができます 属性:@Entity(noClassnameStored = true)
エンティティクラスが1つしかない場合は、通常、属性を抑制しています。エンティティをサブクラス化する場合は、明示的に有効にします(これはデフォルトですが、念のためです)。
私が間違っていなければ、Morphiaは、className
がなくても、プロパティに基づいて正しいサブクラスを推測するのに十分賢いです。 (反射に基づく)。したがって、属性が mongoKnowledgeの場合 サブクラス開発者 人の およびサブクラスManager 持っていない場合、Morphiaは mongoKnowledgeを含むドキュメントを認識します。 クラスDeveloperである必要があります 。厳密に言えば、className
サブクラスが同じ属性を持っている場合にのみ必要です。しかし、私はそれにあまり依存しません。
エンティティクラスの名前を変更しようとはしていませんが、おそらく問題が発生します。 @Polimorphic
を提供するには長年の問題があります 注釈とそれと一緒にそれを修正します。 https://code.google.com/p/morphia/issues/detail?id=22