sql >> Databáze >  >> NoSQL >> MongoDB

název pole Název_třídy je vkládán do mongodb pomocí morphia

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



  1. Prototyp objektu Node.JS může být pouze objekt nebo null s Redis

  2. Automatizace a správa MongoDB v cloudu

  3. Získání seznamu jedinečných vložených/vnořených objektů v dokumentu MongoDB

  4. Implementujte automatické doplňování na MongoDB