Java 一个聚合根能否引用另一个聚合根的非聚合根?
对于此特定场景,我有三个实体:Java 一个聚合根能否引用另一个聚合根的非聚合根?,java,domain-driven-design,Java,Domain Driven Design,对于此特定场景,我有三个实体: 问题(总根) 问题反馈(非聚合根) 问题反馈类别(聚合根) 既然QuestionFeedback在一个问题中,QuestionFeedbackCategory是否也可以保存QuestionFeedback对象的列表?或者QuestionFeedbackCategory是否只需要处理问题对象?如果问题和问题反馈都有类别,并且假设每个都只能有一个类别,我会这样建模 public class Question { ... CategoryId cat
- 问题(总根)
- 问题反馈(非聚合根)
- 问题反馈类别(聚合根)
既然QuestionFeedback在一个问题中,QuestionFeedbackCategory是否也可以保存QuestionFeedback对象的列表?或者QuestionFeedbackCategory是否只需要处理问题对象?如果问题和问题反馈都有类别,并且假设每个都只能有一个类别,我会这样建模
public class Question {
...
CategoryId categoryId;
Set<QuestionFeedback> feedback;
...
}
public class QuestionFeedback {
...
CategoryId categoryId;
...
}
public class Category {
CategoryId id;
String name;
String description;
}
公开课问题{
...
CategoryId CategoryId;
设置反馈;
...
}
公开课堂提问与反馈{
...
CategoryId CategoryId;
...
}
公共类类别{
类别id;
字符串名;
字符串描述;
}
您不必将AR本身“放入”另一个AR/VO中。您可以只引用其充当id的值对象
编辑:阅读这里提到的由三部分组成的文章。出于ORM思维,我曾经对如何对这些类型的关系建模感到困惑。聚合根只能在以下情况下与外部通信:
- 通过聚合内的事件
- 通过构造函数注入
但在上述所有选项中,不允许使用引用,只能使用数组(水合对象)。您能提供域的更详细描述吗?例如,问题反馈类别和问题或问题反馈之间的关系是什么?