Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

construtor medico(cadastroProfessor dados)

Eu tô refazendo o curso com um outro exemplo de API e essa parte nao ta compilando aqui. Nessa parte do código o "endereco" em "dados.endereco()" não é um método do record DadosCadastroMedico?

 public Medico(DadosCadastroMedico dados) {
        this.nome = dados.nome();
        this.email = dados.email();
        this.crm = dados.crm();
                this.especialidade = dados.especialidade();
        this.endereco = new Endereco(dados.endereco());
    }

Por que ele tá depois do ponto e tem os parenteses no final, pra mim não ta fazendo sentido ele ser outra coisa se não um método do objeto dados do record DadosCadastroMedico. Aqui nem ta aparecendo a opção de criar um construtor na classe Endereço, só de criar um método.

3 respostas

Oi Thiago!

Posta aqui o código das suas classes Endreco e DadosCadastroMedico

package star.uni.api.professor;

import star.uni.api.endereco.DadosEndereco;

public record DadosCadastroProfessorDTO(String nome, String email, String cpf, Diciplina diciplina, DadosEndereco dadosEndereco) {
}
package star.uni.api.endereco;

import jakarta.persistence.Embeddable;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Embeddable
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class Endereco {
    private String logradouro;
    private String bairro;
    private String cep;
    private String numero;
    private String complemento;
    private String cidade;
    private String uf;




}

eu to simulando a api de uma escola como estudo, aí só troquei o médico por professor

solução!

No seu Record DadosCadastroProfessorDTO o parâmetro endereço se chama dadosEndereco, então ao instanciar o objeto professor você deveria chamar asim:

this.endereco = new Endereco(dados.dadosEndereco());