MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Frühlingsdaten MongoDb:MappingMongoConverter entfernen _class

Hier ist also die Geschichte:Wir fügen den Typ standardmäßig als eine Art Hinweis hinzu, welche Klasse tatsächlich instanziiert werden soll. Da Sie einen Typ eingeben müssen, um das Dokument über MongoTemplate einzulesen trotzdem gibt es zwei Möglichkeiten:

  1. Sie geben einen Typ ab, dem der tatsächlich gespeicherte Typ zugeordnet werden kann. In diesem Fall berücksichtigen wir den gespeicherten Typ und verwenden diesen für die Objekterstellung. Klassisches Beispiel sind hier polymorphe Abfragen. Angenommen, Sie haben eine abstrakte Klasse Contact und Ihre Person . Sie könnten dann nach Contact fragen s und wir im Wesentlichen müssen bestimmen Sie einen zu instanziierenden Typ.
  2. Wenn Sie andererseits einen völlig anderen Typ übergeben, würden wir einfach in diesen gegebenen Typ marshallen, nicht in den tatsächlich im Dokument gespeicherten. Das würde Ihre Frage abdecken, was passiert, wenn Sie den Typ verschieben.

Sie könnten daran interessiert sein, sich dieses Ticket anzusehen, das eine Art austauschbare Typzuordnungsstrategie behandelt, um die Typinformationen in einen tatsächlichen Typ umzuwandeln. Dies kann einfach platzsparenden Zwecken dienen, da Sie vielleicht einen langen qualifizierten Klassennamen auf einen Hash aus wenigen Buchstaben reduzieren möchten. Es würde auch komplexere Migrationsszenarien ermöglichen, in denen Sie möglicherweise völlig willkürliche Typschlüssel finden, die von einem anderen Datenspeicher-Client erstellt wurden, und diese an Java-Typen binden.