首页 > 解决方案 > DDD 和 Spring JPA

问题描述

我从 DDD 和 Spring JPA 开始。分离持久层和域层的概念对我来说看起来和工作得很好,但我发现有一个问题:我们正在失去延迟加载,对吗?是否可以在不加载数据库的所有数据的情况下将域对象与实体映射?出于这个原因,我认为停止在实体中使用一对多关系和在域对象中使用聚合可能是一个更好的主意。所以我请教你的建议。这是个好主意吗?我有一个概念,通过停止在域中使用聚合,将一些方法从域对象委托给服务。

所以我想像那样改变某事(我省略了不必要的理解概念元素)。对我来说,构建业务逻辑更简单,因为我们可以直接访问所有对象,但是我们浪费资源,因为每次我们需要一些对象时都需要从数据库中加载大量数据。: 一对多关系模型。

那样做。它使我们可以更好地控制我们需要哪些对象,但是我们在创建业务逻辑时失去了便利,因为我们需要将一些方法委托给服务: 在此处输入图像描述

你怎么看待这件事?这是一个好主意还是有更好的方法来解决问题。从数据库加载这么多数据来将对象恢复到内存是有点问题的。这让我有点困惑,因为我看到面向对象编程的标准概念在外部数据库的应用程序中实现是有问题的。

标签: javahibernatespring-data-jpadomain-driven-design

解决方案


我不知道你为什么说你总是要加载整个数据库。

您将只加载聚合的数据,因为规则是聚合通过 id 引用另一个。因此,在一对多关系中,您有一个 id 列表。

存储库加载/存储聚合的数据。


推荐阅读