Передать много объектов контроллеру - PullRequest
0 голосов
/ 23 апреля 2020

Помогите пожалуйста. Я должен передать несколько пользователей на вечеринку, но я не знаю, как это сделать, я не видел ничего подобного в другом месте. Как сделать контроллер так, чтобы вы могли передавать в него много объектов, чтобы создать объект с подключением 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<>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...