Não estou conseguindo entender o pq o logradouro está ficando vazio vou deixar o codigo a baixo.
@Entity(name = "Medico")
@Table(name = "medicos")
@Getter
@NoArgsConstructor
@EqualsAndHashCode(of = "id")
public class Medico {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String nome;
private String email;
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.crm = dados.crm();
this.especialidade = dados.especialidade();
this.endereco = new Endereco(dados.dadosEndereco());
}
}
@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;
public Endereco(DadosEndereco dados) {
System.out.println(dados);
this.logradouro = dados.logradouro();
this.bairro = dados.bairro();
this.cep = dados.cep();
this.numero = dados.numero();
this.complemento = dados.complemento();
this.cidade = dados.cidade();
this.uf = dados.uf();
}
}
@RestController
@RequestMapping("medicos")
public class MedicoController {
@Autowired
private MedicoRepository repository;
@PostMapping
@Transactional
public void cadastrar(@RequestBody DadosCadastroMedico dados) {
repository.save(new Medico(dados));
}
}
public record DadosCadastroMedico(String nome, String email, String crm, Especialidade especialidade, DadosEndereco dadosEndereco) {
}
public record DadosEndereco(String logradouro, String bairro, String cep, String cidade, String uf, String complemento, String numero) {
}
Agora vou colocar a exception: