Auf Seite 382 dieses Buches finden Sie eine Passage über die Verwendung von Wertobjekten in Aggregaten unter der (Entitäts-) Wurzel. Es gibt ein Beispiel dafür Product, das neben anderen Werten eine Set<ProductBacklogItem>Sammlung von Entitäten enthält .
Nun versucht Vernon zu erklären, warum ProductBacklogItemes sich um eine Entität und nicht um ein Wertobjekt handelt:
Es gibt gute Gründe, warum ProductBacklogItem eher als Entität als als Wert modelliert wird. Wie in Wertobjekte (6) erläutert, muss die Sicherungsdatenbank, da sie über den Ruhezustand verwendet wird, Wertesammlungen als Datenbankentitäten modellieren. Das Neuanordnen eines der Elemente kann dazu führen, dass eine erhebliche Anzahl, sogar alle ProductBacklogItem-Instanzen, gelöscht und ersetzt werden. Dies würde tendenziell zu einem erheblichen Overhead in der Infrastruktur führen. Als Entität kann das Bestellattribut für alle Sammlungselemente so oft geändert werden, wie es ein Product Owner benötigt. Wenn wir jedoch von der Verwendung von Hibernate mit MySQL zu einem Schlüsselwertspeicher wechseln, können wir ProductBacklogItem leicht in einen Werttyp ändern. Bei Verwendung eines Schlüsselwerts oder eines Dokumentenspeichers
Ich verstehe nicht, warum die Repository- Implementierung bestimmt, ob ein Modell eine Entität oder ein Wertobjekt sein wird. Wenn wir zum Schlüsselwertspeicher gehen, haben wir möglicherweise noch eine Bestellung, über die er spricht.
Halten Sie das für sinnvoll?