0

Ich studiere Mongo Db und Spring-Framework. Ich glaube, eine der Stärken von Mongodb ist Expendable-Struktur, so kann der Benutzer einfach hinzufügen oder entfernen Mitgliedsdaten.Warum Benutzer-VO mit Spring-Daten Mongo machen?

Allerdings habe ich viele Beispiele mit Benutzerdokument gefunden (mit @Document wie this). Wenn VO wie dieser Benutzer verwenden sollte Java-Klasse kompilieren, wenn Feld hinzugefügt oder entfernt wird, oder?

Ich denke, dass Menschen auf diese Weise, da diese Art von Struktur einen Punkt haben. Ich möchte wissen warum. Für mich fühlt es sich besser an, Map<String, Object> zu verwenden.

Vielen Dank für die Beantwortung meiner grundlegenden Frage.

Antwort

0

Sie können die Antwort mit den folgenden Punkten finden:

(1) Durch ein Value Object mit @Document abbildet, können Sie ein Java-Objekt (in dem Heap) mit einem document in einem MongoDBcollection (wie User darstellen können, Product, etc ..), die Objekt zu Document Mapping (ODM) genannt wird und Sie Frameworks wie Spring Data MongoDB, Hibernate OGM, etc .. dafür verwenden können. Der Vorteil besteht darin, Dokumente unter Verwendung der Leistungsfähigkeit der ODM-Frameworks zu speichern/abzurufen, ohne den Standardcode für den Zugriff auf die Datenbank neu zu implementieren.

Sie können an dieser Stelle auf here auf die Funktionen von Spring Data Framework zugreifen und es verwaltet, um die Dokumente einfach zu speichern/abrufen.

Wenn Sie dies nicht befolgen, werden Sie in Boilerplate-Code für das ganze Data Access Layer erneut implementieren.

(2) Auch mit Map<String, Object> für jede Art von Daten ist gegen OOP, so sollten Sie die Daten mit Ihren Geschäftsbedingungen (wie Produktdokument, Abteilungsdokument, etc ..) darstellen.

+0

Danke für die Antwort. Ich verstehe. –