1

在 Eric Evans ( http://dddcommunity.org/examples )编写的示例 DDD 项目中,有一个 Cargo 类,它是一个实体对象,并使用 hibernate 映射到 db 表。该货物域对象由几个值对象组成,其中之一是交付。这个 Delivery 值对象非常复杂,因为它有大约 10 个字段。尽管如此,Delivery 是一个平面对象,因此它可以完美地存储在与 Cargo 相同的表中的 db 中。

我在我的应用程序中遵循了埃文斯的例子,但我遇到了一些困难,希望你能帮助我。

我有一个 InvoiceDefinition 实体对象,它是一个聚合根。除此之外,它还有一个 InvoiceLine 类型的字段,它是一个值对象。InvoiceLine 不能独立于 InvoiceDefinition 存在。诀窍是 InvoiceLine 可以是叶子节点或树节点,其中包含子 InvoiceLine 值列表。所以它形成了一个递归结构。

这可以作为有效的值对象传递吗?如何使用休眠将这样的值对象存储在数据库中?

4

1 回答 1

1

我认为如果 value 对象是一个Composite没有什么不好的。
但是,不变性可能存在问题。

据我所知 - 使用 hibernate 映射复合材料有点棘手(这是nhibernate 的教程)。

于 2010-07-28T15:51:03.367 回答