有两个实体:邀请和群组
用户可以邀请其他用户加入群组。我有一个用于邀请 Rest API 端点的 Controller 和一个实现业务逻辑的服务层。
accept方法定义在邀请服务层:
public void accept(long invitationId, String username) {
Invitation invitation = this.loadById(invitationId);
User user = userService.loadByUsername(username);
validateAccessToInvitation(invitation, user);
Group group = invitation.getGroup();
group.addMember(user);
invitationRepository.delete(invitation);
// groupRepository.save(group);
}
我想知道访问另一个实体存储库(此处:组存储库
)和某些实体服务层(此处:邀请
服务层)是否是个好主意。
一种选择是将save
方法添加到group
服务层。但它只会调用 groupRepository
上的保存,这在某种程度上感觉不应该是一个好的设计。
最佳答案
我可能会考虑在组的服务层类中公开一个 addMemberToGroup
方法。然后,该逻辑全部捆绑在一起,如果向组添加成员的逻辑发生任何变化,您可以在一个中央、明显的位置执行此操作。
我什至可能会说这种方法可能违反单一责任原则。
关于java - 从实体的服务层调用另一个实体的存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44645702/