ArrayList (CRUD)

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! :slight_smile:

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