sql >> Database >  >> NoSQL >> MongoDB

een veldnaam ClassName wordt door morphia in mongodb ingevoegd

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



  1. Mongodb update diep genest subdocument

  2. Hoe redis.conf opslaan en afsluiten?

  3. dus je HBase is kapot

  4. Mongoose voegt meerdere objecten toe aan array indien niet gebaseerd op bestaan