领域驱动设计中的聚合模式和Hibernate @OneToMany单向关联

3
我正在应用领域驱动设计聚合模式到我的模型中。我遵循常见的DDD聚合模式示例: Order是一个根聚合,管理一个或多个LineItem。在我在网上找到的许多聚合模式示例中,LineItem不应该知道关于它们的Order的任何信息。
我将使用Hibernate JPA来实现这种模式。这将强制执行从OrderLineItem的单向一对多映射。基于这个模型,让Order(聚合根)拥有这个关系是直观的。
然后,我读到了https://fedcsis.org/proceedings/2013/pliks/322.pdf关于Hibernate集合中反模式的描述。它提到,一对多作为拥有方是反模式,因为Hibernate会发出额外的查询。但是,这个反模式正好适用于我的Order-LineItem聚合模式实现。
那么,我该如何在Hibernate中实现DDD聚合模式(例如,唯一添加或更新LineItem的方法是从它的Order中)?
1个回答

2

DDD提出了最佳设计方式,然后让您在此基础上进行优化。在这种情况下,由于您的实现细节(如hibernate)对“最佳”设计造成不良影响,因此您必须选择性能更好的设计。当然,前提是确实存在性能问题。

因此,先建立正确的系统设计,然后再进行优化。过早的优化是万恶之源:http://c2.com/cgi/wiki?PrematureOptimization


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接