我正在阅读Vaughn Vernon撰写的Implementing Domain-Driven Design,在关于聚合的章节中,显示了以下结构:
这个结构可以使用Hibernate / NHibernate轻松映射,因为每个实体都通过引用引用聚合根。
然而,他决定将设计重构为:
现在所有实体都使用ProductId
值对象来引用根。
如何使用Hibernate / NHibernate对此进行建模?
找到答案 0 :(得分:0)
在BacklogItem,Rlease,Sprint的hbms
<component name="productId">
<property name="value" column="product_id"/>
</component>
或JPA风格
@Embedded
@OverrideAttributes....
private ProductId productId
在这种情况下,BacklogItem不需要延迟加载Product,因此一个简单的标识符就足够了。只需将它们视为休眠组件即可。
答案 1 :(得分:0)
使用(Fluent-)NHibernate看起来像
Component(x => x.ProductId, c => c.Map(pid => pid.Value, "product_id"));