U kunt de className
explicitly expliciet uitschakelen attribuut:@Entity(noClassnameStored = true)
Ik onderdruk over het algemeen het attribuut, als er een enkele entiteitsklasse is. Als ik mijn entiteit subclassificeer, schakel ik deze expliciet in (wat de standaard is, maar voor de zekerheid).
Als ik me niet vergis, is Morphia slim genoeg om de juiste subklasse te raden op basis van de eigenschappen, zelfs als er geen className
is (op basis van reflectie). Dus als je een attribuut mongoKnowledge . hebt in uw subklasse Ontwikkelaar van Persoon en uw subklasse Manager het niet heeft, zal Morphia weten dat documenten met mongoKnowledge moet van de klasse Ontwikkelaar zijn . Dus strikt genomen className
is alleen vereist als uw subklassen dezelfde kenmerken hebben; ik zou er echter niet te veel op vertrouwen.
Ik heb niet geprobeerd de entiteitsklassen te hernoemen, maar dit zal waarschijnlijk problemen veroorzaken. Er is een al lang bestaand probleem met het verstrekken van een @Polimorphic
annotatie en om het daarmee samen vast te stellen. Zie https://code.google.com/p/morphia/issues/detail?id=22