sql >> Databasteknik >  >> NoSQL >> MongoDB

Morphia-projektionsbeteende till exempel variabel med standardvärde

När Morphia läser dina dokument från frågeresultaten är det första den gör att skapa en ny instans av din enhet, Student . Det åberopar bara no argument-konstruktorn. Det är ingen magi inblandad. Stadsfältet initieras med ett värde. När det är gjort kommer Morphia att ta varje nyckel i dokumentet som returneras från databasen, hitta det mappade fältet och ställa in det. I ditt fall finns det ingen stadsnyckel i dokumentet, så det fältet ställs aldrig in genom att Morphia lämnar det initialiserade värdet på plats.

I allmänhet är det en dålig praxis att initiera fält på sådana enheter. För varje entitet som laddas från databasen måste JVM initiera dessa fält till något värde bara för att skriva över dem senare. I fall som ditt där vissa fält inte kommer tillbaka i ett frågeresultat, kvarstår dessa värden efter att Morphia returnerar de nya instanserna till din applikation.




  1. MongoCollection kontra DBCollection java

  2. Gräns ​​=1 =1 ms, gräns> 1 =150 ms (mongo-melt-down)

  3. Tar bort objekt med ObjectId från array i Mongoose/MongoDB

  4. mongodb - skapa dokument om det inte finns, annars tryck till array