En la página 382 de este libro hay un pasaje que habla sobre el uso de objetos de valor en agregados, debajo de la raíz (entidad). Hay un ejemplo de Product
eso, además de otros valores, contiene una Set<ProductBacklogItem>
colección de entidades .
Ahora, Vernon intenta explicar por qué ProductBacklogItem
es una entidad y no un objeto de valor:
Hay buenas razones por las que ProductBacklogItem se modela como una Entidad en lugar de un Valor. Como se discutió en Value Objects (6), dado que la base de datos de respaldo se utiliza a través de Hibernate, debe modelar colecciones de valores como entidades de bases de datos. Reordenar cualquiera de los elementos podría causar que se elimine y reemplace un número significativo, incluso todos, de las instancias de ProductBacklogItem. Eso tendería a causar una sobrecarga significativa en la infraestructura. Como entidad, permite que el atributo de pedido se cambie en todos y cada uno de los elementos de la colección tan a menudo como lo requiera el propietario del producto. Sin embargo, si tuviéramos que cambiar de usar Hibernate con MySQL a un almacén de valores clave, podríamos cambiar fácilmente ProductBacklogItem para que sea un tipo de Valor. Cuando se utiliza un almacén de valores o documentos clave
No entiendo por qué la implementación del repositorio determina si algún modelo será una entidad o un objeto de valor. Si vamos a la tienda de valor-clave, aún podemos tener pedidos de los que está hablando.
¿Crees que esto tiene sentido?
fuente