私はDDDを初めて使用し、ここで立ち往生しています。ユーザーとグループの2つのエンティティ間に多対多の関係があります。ユーザーはグループなしで存在でき、グループはユーザーなしで存在できるため、関係は集約ではありません。
これは、Userクラスの私のコードです。
public class User {
private List<Group> groups = new ArrayList<Group>();
private UserRepository userRepository;
public void create() throws Exception{
userRepository.create(this);
// I have to update the groups with the user.
for (Group group : groups) {
group.update();
}
}
public void addGroup(Group group){
if (!groups.contains(group)) {
groups.add(group);
group.addUser(this);
}
}
}
問題は、グループを含むユーザーを作成するときに、これらのクラスをどこに関連付けるかがわからないことです(ORMは使用できません)。Userのcreateメソッドで作成し、Springを通じてトランザクションを管理しています。これは正しいです?または、そのコードをuserRepositoryまたはServiceに配置する必要がありますか?
ありがとう!