Помогите пожалуйста. Я должен передать несколько пользователей на вечеринку, но я не знаю, как это сделать, я не видел ничего подобного в другом месте. Как сделать контроллер так, чтобы вы могли передавать в него много объектов, чтобы создать объект с подключением ManyToMany?
Мой контроллер:
@PostMapping("/project/{projectId}/party/create")
public String processCreateProjectParty(
@PathVariable("projectId") Project project,
@Valid Party party,
Set<User> users,
BindingResult bindingResult,
Model model) {
model.addAttribute("project", project);
model.addAttribute("party", party);
model.addAttribute("users", users);
Long projectId = projectService.createProjectParty(project, party, users);
return "redirect:/projects/project/" + projectId;
}
Метод создания моей сущности
public Long createProjectParty(Project project, Party party, Set<User> users) {
project.addParty(party);
party.addUsers(party, users);
projectRepo.save(project);
return project.getProjectId();
}
Вспомогательные методы для добавления двунаправленных ассоциаций:
public void addParty(Party party) {
party.setPartyProject(this);
this.projectParties.add(party);
}
public void addUsers(Party party, Set<User> users) {
party.setPartyUsers(users);
this.partyUsers.forEach(user -> user.getUserParties().add(party));;
}
ManyToMany сопоставление ассоциации:
@ManyToMany(fetch = FetchType.LAZY,
cascade = {CascadeType.PERSIST, CascadeType.DETACH, CascadeType.REFRESH, CascadeType.REMOVE}
)
@JoinTable(name = "party_users",
joinColumns = {@JoinColumn(name = "fk_party_id")},
inverseJoinColumns = {@JoinColumn(name = "fk_user_id")})
private Set<User> partyUsers = new HashSet<>();