我正在阅读Implementing Domain-Driven Design作者:Vaughn Vernon,在有关聚合的章节中显示了以下结构:

这个结构可以使用 Hibernate/NHibernate 轻松映射,因为每个实体通过引用引用聚合根。

但是,他决定将设计重构为:

现在,所有实体都使用 ProductId 值对象来引用根。

如何使用 Hibernate/NHibernate 对此进行建模?

图表的解释可以在这里找到 Effective Aggregate Design by Vaughn Vernon

请您参考如下方法:

在BacklogItem、Rlease、Sprint的hbms中

<component name="productId"> 
    <property name="value" column="product_id"/> 
</component> 

或者JPA风格

@Embedded 
@OverrideAttributes.... 
private ProductId productId 

在这种情况下,BacklogItem 不需要延迟加载 Product,因此一个简单的标识符就足够了。只需将它们视为 hibernate 组件即可。


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!