gpt4 book ai didi

java - DDD 中的聚合对象,这是潜在的聚合吗?

转载 作者:行者123 更新时间:2023-11-29 09:09:42 25 4
gpt4 key购买 nike

我有两个实体问题和问题日志。 question 显然代表一个问题,而 QuestionLog 代表一个实体,用户可以报告一个特定的问题。例如,如果问题是错误的,质量差等。

现在从我读到的内容来看,聚合对象是唯一具有存储库的对象,并且如果删除了它所附加的问题,QuestionLog 对象不应该在我的系统中,我认为 Question 将是聚合根。

在这种情况下这样做是否有意义?

如果我想要用户提交的问题日志列表怎么办?然后我会制作一个 JPQL 来检索用户提交的所有 QuestionLog,还是会破坏它的预期方式?我是否应该取而代之检索一个问题列表,该列表具有该特定用户附加的问题日志,然后遍历所有问题并显示每个问题日志的属性?

因为必须允许在 Question 类之外使用 QuestionLog 对象?我对这些限制及其现状感到有些困惑。

最佳答案

因为 QuestionLog 没有相应的 Question 就没有意义,所以你是对的 - 它不是聚合根。

所有与 QuestionLog 相关的操作都应该通过 Question 聚合。

如果你想要一个用户的 QuestionLog 列表,你需要在 Question 上定义一个聚合 GetQuestionLogsForUser(user aUser)方法。您不必获取用户的所有问题,但可以通过聚合控制对QuestionLog 的访问。

您可以在聚合根之外使用 QuestionLog 对象,但对其执行的任何操作都应通过聚合根完成,尤其是持久性问题。

关于java - DDD 中的聚合对象,这是潜在的聚合吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13083890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com