Galera,
Dando erro ao tentar colocar var medico :Medico = repository.getReferenceById(dados.id()); na classe MedicoController . Sendo assim, não consigo puxar na classe medico no metodo atualizarInformacoes - public void atualizarInformacoes(DadosAtualizacaoMedico dados) { this.nome=dados.nome() erro dados.nome()
}
package med.voll.api.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;
import jakarta.transaction.Transactional; import jakarta.validation.Valid; import med.voll.api.medico.DadosAtualizacaoMedico; import med.voll.api.medico.DadosCadastroMedico; import med.voll.api.medico.DadosListagemMedico; import med.voll.api.medico.Medico; import med.voll.api.medico.MedicoRepository;
@RestController @RequestMapping("medicos") public class MedicoController { @Autowired private MedicoRepository repository;
@PostMapping
@Transactional
public void cadastrar(@RequestBody @Valid DadosCadastroMedico dados) {
repository.save(new Medico(dados));
}
@GetMapping
public Page<DadosListagemMedico> listar(Pageable paginacao) {
return repository.findAll(paginacao).map(DadosListagemMedico::new);
}
@Transactional
@GetMapping
public void atualizar(@RequestBody @Valid DadosAtualizacaoMedico dados) {
** var medico :Medico = repository.getReferenceById(dados.id()); medico.atualizarInformacoes(dados); ** }
}
classe medico
@Table(name= "medicos") @Entity(name= "Medicos")
@Getter @Setter @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode(of = "id") public class Medico { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String nome; private String email; private String telefone; private String crm; @Enumerated(EnumType.STRING) private Especialidade especialidade; @Embedded private Endereco endereco;
public Medico(DadosCadastroMedico dados) {
this.nome=dados.nome();
this.email=dados.email();
this.telefone=dados.telefone();
this.crm=dados.crm();
this.especialidade=dados.especialista();
this.endereco= new Endereco(dados.endereco());
}
public void atualizarInformacoes(DadosAtualizacaoMedico dados) {
this.nome=dados.nome();
}
}