Получаю ошибку - 500 RestApi

Доброго времени суток хочу получить список людей по имени, но к сожалению получаю ошибку сервера. В чем может быть моя ошибка.

Repository:

@Repository
public interface PersonRepository extends JpaRepository<Person, Integer> {


    List<Person> getAllByName(String name);

}

Service:

@Service
@Transactional(readOnly = true)
public class PersonService {

    private final PersonRepository personRepository;

    @Autowired
    public PersonService(PersonRepository personRepository) {
        this.personRepository = personRepository;
    }


    public Person findOne(int id) {
        Optional<Person> foundPerson = personRepository.findById(id);
        return foundPerson.orElseThrow(PersonNotFoundException::new);
    }


    public List<Person> getPersonByName(String name) {
        return personRepository.getAllByName(name);
    }

}

Controller:

@RestController
@RequestMapping("/people")
public class PeopleController {

    private final PersonService personService;
    @Autowired
    public PeopleController(PersonService personService) {
        this.personService = personService;
    }


    @GetMapping
    public List<Person> getPeople() {
        return personService.findAll();
    }

    @GetMapping("/{id}")
    public Person getPerson(@PathVariable("id") int id) {
    return personService.findOne(id);
    }

    @GetMapping("/{name}")
    List<Person> getAllByName(@PathVariable String name) {
        return personService.getPersonByName(name);
    }

    @ExceptionHandler
    private ResponseEntity<PersonErrorResponse> handleException(PersonNotFoundException exception) {
        PersonErrorResponse personErrorResponse = new PersonErrorResponse(
                "Person with id wasn't found", LocalDate.now()
        );

        return new ResponseEntity<>(personErrorResponse, HttpStatus.NOT_FOUND);
    }

}

введите сюда описание изображения введите сюда описание изображения введите сюда описание изображения


Ответы (1 шт):

Автор решения: Nofate

В ошибке же все написано. У вас два метода, привязаны к пути /people/{something}. Если вы запросите, скажем, /people/42, контроллер не сможет понять, строку "42" вы имели в виду или число 42.

Так что для запроса списка пользователей по имени, замапьте метод getAllByName на отдельный путь типа /people/by-name/{name}

→ Ссылка