когда запрос Get отличается от Id, получающего это исключение: не удалось преобразовать значение типа java.lang.String в требуемый тип java.lang.Long - PullRequest
0 голосов
/ 28 сентября 2018

В моем коде SpringBoot Когда я использую запрос Get для пользователя / {id} работает нормально, но при использовании запроса user / modelname.

Я получаю исключение:

Не удалось преобразовать значение типа 'java.lang.String' в требуемый тип 'java.lang.Long';

carController.java

@GetMapping("/user/{id}")
    public Car getUser(@PathVariable Long id) {
        return carRepository.findOne(id);
    }

    @GetMapping("/user/modelname")
    public List<Car> searchUserByModel(@RequestBody String modelname) {
        return carRepository.findByModelname(modelname);
    }

carRepository.java

import org.springframework.data.jpa.repository.JpaRepository;


public interface CarRepository  extends JpaRepository<Car, Long>{

    public List<Car> findByModelname(String modelname);

}

car.java

@Entity
public class Car {
    @Id
    @GeneratedValue
    private Long id;
    private String modelname;
public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
public String getModelname() {
        return modelname;
    }

    public void setModelname(String modelname) {
        this.modelname = modelname;
    }

public Car(Long id,String modelname) {
        this.id=id;
        this.modelname = modelname;
    }
@Override
    public String toString() {
        return "Car [id=" + id + ",  modelname=" + modelname +"]";
    }

    public Car() {
    }
}

1 Ответ

0 голосов
/ 28 сентября 2018

Ваш запрос не достигает @GetMapping("/user/modelname").он всегда собирается @GetMapping("/user/{id}") только потому, что удовлетворяет условию.Попробуйте изменить URL-адрес на что-то вроде этого @GetMapping("/users/modelname") и проверьте, что он определенно попадет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...