Разместить объект с помощью restController - PullRequest
0 голосов
/ 11 июня 2018

У меня небольшая проблема, чтобы правильно создать способ добавления людей в команды.Причина в том, что моя проблема в том, что я не могу добавить два аргумента в 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 class:

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;
    }

Как правильно написать этот метод контроллера для возврата реальной команды иидентификатор личности?Как я добавил в surce: @PostMapping ("/ addPeopleToTeams / {teamId} / {personId}"

1 Ответ

0 голосов
/ 11 июня 2018

Вы можете использовать несколько переменных пути, использовать их для создания TeamsAndPersonsId, а затем сохранить оставшуюся часть текущего кода:

    @PostMapping("/addPeopleToTeams/{teamId}/{personId}")
    @ResponseBody
    public String addPeopleToTeam(@PathVariable Long teamId, @PathVariable Long personId){

        TeamsAndPersonsId teamsAndPersonsId = new TeamsAndPersonsId(teamId, personId);
        // etc...
...