У меня небольшая проблема с правильным созданием метода добавления людей в команды. Причина в том, что моя проблема в том, что я не могу добавить два аргумента в requestbody (или PathVariable). Я хочу взять идентификатор человека и идентификатор команды и вернуть их подключенными. Я создаю отдельный класс, в котором я генерирую идентификатор, но у меня проблема с тем, чтобы правильно указать этот идентификатор из базы данных: Это мой метод в cotroller:
@PostMapping("/addPeopleToTeams/{teamId}/{personId}")
@ResponseBody
public String addPeopleToTeam(@RequestBody TeamsAndPersonsId teamsAndPersonsId){
System.out.println(" " + teamsAndPersonsId.getPersonId());
System.out.println(" " + teamsAndPersonsId.getTeamId());
teamService.findTeamById(teamsAndPersonsId.getTeamId());
personService.findById(teamsAndPersonsId.getPersonId());
return teamsAndPersonsId.getTeamId() + " " + teamsAndPersonsId.getPersonId();
}
Это мой метод поиска по идентификатору в сервисе:
public Optional<TeamDto> findTeamById(Long id) {
Assert.notNull(id, "ID must exist ");
return teamRepository
.findById(id)
.map(p -> modelMapper.map(p, TeamDto.class));
}
Другой мой класс - Team - это entity, teamDto и TeamsAndPersonsId.
TeamsAndPersonsId класс:
public class TeamsAndPersonsId {
private Long personId;
private Long teamId;
public TeamsAndPersonsId(Long personId, Long teamId) {
this.personId = personId;
this.teamId = teamId;
}
public TeamsAndPersonsId(){}
public Long getPersonId() {
return personId;
}
public void setPersonId(Long personId) {
this.personId = personId;
}
public Long getTeamId() {
return teamId;
}
public void setTeamId(Long teamId) {
this.teamId = teamId;
}
Как правильно написать этот контроллер, чтобы возвращать реальные id команды и людей? Как я добавляю в Surce: @PostMapping ("/ addPeopleToTeams / {teamId} / {personId}"




Фактически вы можете использовать несколько переменных пути, использовать их для создания TeamsAndPersonsId, а затем сохранить остальную часть вашего текущего кода:
@PostMapping("/addPeopleToTeams/{teamId}/{personId}")
@ResponseBody
public String addPeopleToTeam(@PathVariable Long teamId, @PathVariable Long personId){
TeamsAndPersonsId teamsAndPersonsId = new TeamsAndPersonsId(teamId, personId);
// etc...