Olá pessoal,
to criando uma API Rest com o Spring Boot, usando MySQL, para exercitar alguns conceitos. Imaginei um sistema onde existe o modelo Paciente e a Consulta. Dentro da classe Paciente, existe uma lista de Consultas, que deve ser atualizada conforme necessidade.
Na classe paciente tenho:
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String telefone;
private String nome;
private String sexo;
private Double idade;
private String endereco;
private String email;
@OneToMany(mappedBy = "paciente")
private List<Consulta> consultas = new ArrayList<>();
No Controller, criei os métodos POST, PUT, GET e DELETE para o Paciente. Minha dúvida é, como faço criar uma “consulta” na lista relacionado ao paciente.
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToOne
private Paciente paciente;
private LocalDateTime dataCriacao = LocalDateTime.now();
private Double altura;
private Double peso;
private String descricao;
Obrigado! 
Você quer saber como faz pra passar os dados da consulta pro ArrayList ou quer saber como faz a consulta com o banco?
Quero criar um “PostMapping”, que procure o paciente no banco de dados através do telefone e adicione a consulta para o paciente. A adição de uma nova consulta não deve eliminar a anterior, mas formar lista.
Pensei em passar o telefone pelo endpoint:
@PostMapping
@RequestMapping("/consultas/{telefone}")
criar um método mais ou menos assim:
@PostMapping
@RequestMapping("/consultas/{telefone}")
public ResponseEntity<PacienteDto> cadastrarConsulta(@PathVariable String telefone, @RequestBody @Valid CadastroConsultaForm form) {
Paciente paciente = form.atualizar(telefone, pacienteRepository);
}
e na classe CadastroConsultaForm, criar um método cadastrarConsulta:
Paciente cadastrarConsulta(String telefone, PacienteRepository pacienteRepository) {
List<Paciente> pacientes = pacienteRepository.findByTelefone(telefone);
}
Esse método faria a adição, mas não estou conseguindo bolar uma lógica para isso.
Consegui uma solução, criando uma classe/tabela @Entity separada para consulta.
Segue solução no GitHub…
GitHub