Java 领域驱动设计&x27;s聚合模式和休眠@OneToMany单向

Java 领域驱动设计&x27;s聚合模式和休眠@OneToMany单向,java,hibernate,design-patterns,jpa,domain-driven-design,Java,Hibernate,Design Patterns,Jpa,Domain Driven Design,我正在我的模型中应用领域驱动的设计聚合模式。我遵循常见的DDD聚合模式示例:Order是管理一个或多个LineItem的根聚合。在我在web上找到的许多聚合模式示例中,LineItem不应该知道它们的顺序 我将使用HibernateJPA来实现这个模式。这将强制执行从Order到LineItem的单向一对多映射。基于该模型,可以直观地将订单(聚合根)作为拥有方 然后,我阅读了关于Hibernate集合中反模式的描述。它提到一对多作为拥有方是一种反模式,因为Hibernate将发出额外的查询。但是

我正在我的模型中应用领域驱动的设计聚合模式。我遵循常见的DDD聚合模式示例:
Order
是管理一个或多个
LineItem
的根聚合。在我在web上找到的许多聚合模式示例中,
LineItem
不应该知道它们的
顺序

我将使用HibernateJPA来实现这个模式。这将强制执行从
Order
LineItem
的单向一对多映射。基于该模型,可以直观地将
订单
(聚合根)作为拥有方

然后,我阅读了关于Hibernate集合中反模式的描述。它提到一对多作为拥有方是一种反模式,因为Hibernate将发出额外的查询。但是,反模式正好适合我的
顺序
-
行项
聚合模式实现


我应该如何在Hibernate中实现DDD聚合模式(例如,添加或更新
LineItem
的唯一方法是从其
顺序
)?

DDD指出了最佳的设计方法,然后让您从中进行优化。在这种情况下,由于您的实现细节(即hibernate)不利于“最佳”设计,因此您必须采用更高性能的设计。当然,假设事实上存在性能下降

所以,正确构建它,然后进行优化。过早优化是万恶之源: