Boa tarde, estou tentando aplicar um projeto para por em pratica o que aprendi no curso. É como se fosse um cadastro de alunos e agendamento de aulas. Possuo duas Entidades, uma Aluno e uma Agendamento. No AlunoController faço o cadastro de alunos no banco de dados(estou utilizando o mySQL), e com o AgendamentoController eu gostaria de realizar o Agendamento de um dia e hora e gostaria que aparecesse o nome do aluno que foi agendado. Só que sempre que coloco o nome do aluno, da erro 400 "Bad Request".
ALUNO
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.validation.constraints.NotBlank;
@Entity
public class Aluno {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int matricula;
@NotBlank
private String nome;
@NotBlank
private String cpf;
@NotBlank
private String email;
public Aluno() {
}
public Aluno(@NotBlank String nome, String cpf, String email) {
super();
this.nome = nome;
this.cpf = cpf;
this.email = email;
}
public int getMatricula() {
return matricula;
}
public void setMatricula(int matricula) {
this.matricula = matricula;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
AGENDAMENTO
package br.com.vitu.teste.model.entities;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.validation.constraints.NotBlank;
@Entity
public class Agendamento {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int matricula;
@ManyToOne
@JoinColumn(name = "nome_matricula")
private Aluno nome;
@NotBlank
private String diasemana;
@NotBlank
private String hora;
public Agendamento() {
}
public Agendamento( Aluno nome, @NotBlank String diasemana, @NotBlank String hora) {
super();
this.nome = nome;
this.diasemana = diasemana;
this.hora = hora;
}
public int getMatricula() {
return matricula;
}
public void setMatricula(int matricula) {
this.matricula = matricula;
}
public Aluno getNome() {
return nome;
}
public void setNome(Aluno nome) {
this.nome = nome;
}
public String getDiasemana() {
return diasemana;
}
public void setDiasemana(String diasemana) {
this.diasemana = diasemana;
}
public String getHora() {
return hora;
}
public void setHora(String hora) {
this.hora = hora;
}
ALUNO CONTROLLER
package br.com.vitu.teste.controller;
import java.util.List;
import java.util.Optional;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import br.com.vitu.teste.model.entities.Aluno;
import br.com.vitu.teste.model.repository.AlunoRepository;
@RestController
@RequestMapping("/teste/aluno")
public class AlunoController {
@Autowired
private AlunoRepository alunoRepository;
@PostMapping
public @ResponseBody Aluno novoAluno(@Valid Aluno aluno) {
alunoRepository.save(aluno);
return aluno;
}
@GetMapping
public List<Aluno> consultarAluno(){
return alunoRepository.findAll();
}
@GetMapping(path = "/matricula/{matricula}")
public Optional<Aluno> consultarAlunoId(@PathVariable int matricula){
return alunoRepository.findById(matricula);
}
@GetMapping(path = "/nome/{nome}")
public List<Aluno> consultarAlunoNome(@PathVariable String nome){
return alunoRepository.findByNomeContainingIgnoreCase(nome);
}
@PutMapping
public Aluno alterarAluno(@Valid Aluno aluno) {
alunoRepository.save(aluno);
return aluno;
}
@DeleteMapping(path = "/matricula/{matricula}")
public void deletarAluno(@PathVariable int matricula) {
alunoRepository.deleteById(matricula);
}
}