Olá, tudo bem?
Estou com um problema na hora de declarar a minha variável consulta dentro do método agendar da classe AgendaDeConsulta, onde mesmo criando o var medico e o var consulta ele da erro e pede para criar um construtor na Consulta (sendo que já existe o lombok com as anotações para isso).
Segue as classes:
AgendaDeConsulta
package med.voll.api.domain.consulta;
import med.voll.api.domain.medico.MedicoRepository;
import med.voll.api.domain.paciente.PacienteRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class AgendaDeConsultas {
@Autowired
private ConsultaRepository consultaRepository;
@Autowired
private MedicoRepository medicoRepository;
@Autowired
private PacienteRepository pacienteRepository;
public void agendar(DadosAgendamentoConsulta dados) {
var paciente = pacienteRepository.findById(dados.idPaciente());
var medico = medicoRepository.findById(dados.idMedico());
var consulta = new Consulta(null, medico, paciente, dados.data());
consultaRepository.save(consulta);
}
}
Consulta
package med.voll.api.domain.consulta;
import jakarta.persistence.*;
import lombok.*;
import med.voll.api.domain.medico.Medico;
import med.voll.api.domain.paciente.Paciente;
import java.time.LocalDateTime;
import java.util.Optional;
// Trecho de código suprimido
@Table(name = "consultas")
@Entity(name = "Consulta")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(of = "id")
public class Consulta {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "medico_id")
private Medico medico;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "paciente_id")
private Paciente paciente;
private LocalDateTime data;
}