Можете изрично да деактивирате className
атрибут:@Entity(noClassnameStored = true)
Обикновено потискам атрибута, ако има един клас обект. Ако подкласявам обекта си, изрично го активирам (което е по подразбиране, но само за да съм сигурен).
Ако не се лъжа, Morphia е достатъчно умен, за да отгатне правилния подклас въз основа на свойствата, дори ако няма className
(въз основа на размисъл). Така че, ако имате атрибут mongoKnowledge във вашия подклас Разработчик на Лице и вашият подклас Мениджър няма го, Morphia ще знае, че документира с mongoKnowledge трябва да е от класа Разработчик . Така че, строго казано className
се изисква само ако вашите подкласове имат същите атрибути; обаче не бих разчитал твърде много на него.
Не съм се опитвал да преименувам класовете на обекти, но вероятно ще предизвика проблеми. Има дългогодишен проблем с предоставянето на @Polimorphic
анотация и да я поправите заедно с това. Вижте https://code.google.com/p/morphia/issues/detail?id=22