className
můžete explicitně zakázat atribut:@Entity(noClassnameStored = true)
Atribut obecně potlačuji, pokud existuje jedna třída entity. Pokud svou entitu zařazuji do podtřídy, výslovně ji povoluji (což je výchozí nastavení, ale pro jistotu).
Pokud se nemýlím, Morphia je dost chytrá na to, aby uhádla správnou podtřídu na základě vlastností, i když neexistuje className
(na základě reflexe). Pokud tedy máte atribut mongoKnowledge ve vaší podtřídě Vývojář osoby a vaše podtřída Manager nemá, Morphia bude vědět, že dokumenty s mongoKnowledge musí být ze třídy Vývojář . Přesně řečeno className
je vyžadováno pouze v případě, že vaše podtřídy mají stejné atributy; nicméně bych na to příliš nespoléhal.
Nezkoušel jsem přejmenovat třídy entit, ale pravděpodobně to způsobí problémy. Existuje dlouhodobý problém s poskytováním @Polimorphic
anotaci a opravit ji spolu s tím. Viz https://code.google.com/p/morphia/issues/detail?id=22