Идентификатор запроса не находит метод findbyid в качестве параметра запроса - PullRequest
0 голосов
/ 20 сентября 2018

Я работаю с сервисом, который подключен к базе данных MySQL, и у меня проблема с методом, который я запрашиваю параметр.Но кажется, что он не читает.

Я имею в виду, что в отпечатке, который я делаю, он возвращает параметр.Но в методе findbyId не находит запрошенный файл.

Метод MainController:

@Controller
@RequestMapping(path="/festivales")
public class MainController {

@Autowired
private FestivalRepository festivalRepository;

@Autowired
private UsuarioRepository usuarioRepository;

//http://localhost:8080/festivales/all-festivales
@GetMapping(path="/all-festivales")
public @ResponseBody Iterable<Festival> getAllFestivales() {
    // This returns a JSON or XML with the users
    return festivalRepository.findAll();
}

//Doesn't work
    @GetMapping("/all-festivales/{id}")
    public Festival getFestival(@PathVariable int id) throws Exception {
        Optional<Festival> student = festivalRepository.findById(id);

        if (!student.isPresent())
            throw new Exception("id-" + id);

        System.out.println(id);
        System.out.println(student.get());
        System.out.println(student.get().toString());


        return student.get();
    }   

Другие методы, которые могут помочь узнать, что я пытаюсь сделать:

Фестиваль класса:

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class Festival {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int id;
    private String name;
    private String descripcion;
    private String genero;
    private double precio;
    private int dias;
    private String fecha_ini;
    private String fecha_fin;

    public Festival() {}

    public Festival(int id, String name, String descripcion, String genero, double precio, int dias, String fecha_ini, String fecha_fin) {
        this.id = id;
        this.name = name;
        this.descripcion = descripcion;
        this.genero = genero;
        this.precio = precio;
        this.dias = dias;
        this.fecha_ini = fecha_ini;
        this.fecha_fin = fecha_fin;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public String getGenero() {
        return genero;
    }

    public void setGenero(String genero) {
        this.genero = genero;
    }

    public double getPrecio() {
        return precio;
    }

    public void setPrecio(double precio) {
        this.precio = precio;
    }

    public int getDias() {
        return dias;
    }

    public void setDias(int dias) {
        this.dias = dias;
    }

    public String getFecha_ini() {
        return fecha_ini;
    }

    public void setFecha_ini(String fecha_ini) {
        this.fecha_ini = fecha_ini;
    }

    public String getFecha_fin() {
        return fecha_fin;
    }

    public void setFecha_fin(String fecha_fin) {
        this.fecha_fin = fecha_fin;
    }
}

Хранилище:

import org.springframework.data.repository.CrudRepository;
import com.example.pruebas.festivalapp.model.Festival;

//This will be AUTO IMPLEMENTED by Spring into a Bean called userRepository
//CRUD refers Create, Read, Update, Delete

public interface FestivalRepository extends CrudRepository<Festival, Integer> {

}

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

Это данные MySQL, которые я помещаю на локальный хост, где их атаковать:

JSON, когда я выбираю, чтобы получить все фестивали:

[
  {
    "id": 1,
    "name": "Viñarock",
    "descripcion": "Festival de rock rap y mestizaje",
    "genero": "rock",
    "precio": 50.0,
    "dias": 3,
    "fecha_ini": "10-05-2019",
    "fecha_fin": "12-05-2019"
  },
  {
    "id": 2,
    "name": "Resurrection Fest",
    "descripcion": "Festival de rock, metal, hardcore..",
    "genero": "rock",
    "precio": 80.0,
    "dias": 3,
    "fecha_ini": "10-07-2019",
    "fecha_fin": "12-07-2019"
  },
  {
    "id": 3,
    "name": "MareaRock Fest",
    "descripcion": "Festival de punk rock",
    "genero": "punk",
    "precio": 15.0,
    "dias": 1,
    "fecha_ini": "10-04-2019",
    "fecha_fin": "12-04-2019"
  },
  {
    "id": 4,
    "name": "Festardor",
    "descripcion": "Festival de punk y rap",
    "genero": "otros",
    "precio": 20.0,
    "dias": 2,
    "fecha_ini": "10-09-2019",
    "fecha_fin": "12-09-2019"
  },
  {
    "id": 5,
    "name": "Festival de les arts",
    "descripcion": "Festival indie",
    "genero": "otros",
    "precio": 40.0,
    "dias": 2,
    "fecha_ini": "10-06-2019",
    "fecha_fin": "12-06-2019"
  }
]

Кто-нибудь может мне помочь?Спасибо.

1 Ответ

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

Вы указали конечные точки буксировки с одинаковым путем "all-festivales / {id}. Я не знаю, как приложение запускается, так как это приводит к неоднозначности. Вы должны указать уникальный путь в одном и том же методе запроса, поэтому удалите первый и используйте второйс @PathVariable должен работать

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