Estou usando o Postgresql no meu projeto, porem toda vez que eu tento enviar os dados recebo o seguinte erro:
ERRO: null value in column "nome" of relation "medicos" violates not-null constraint Detalhe: Registro que falhou contém (16, null, rodrigo.ferreira@voll.med, 123456, ORTOPEDIA, rua 1, bairro, 12345678, complemento, 1, DF, Brasilia).
E eu não estou conseguindo achar onde esta o erro
Classe medico:
package med.voll.api.medicos;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import med.voll.api.endereco.Endereco;
@Table(name = "medicos")
@Entity(name = "Medico")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(of = "id")
public class Medico {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private String nome;
private String email;
private String crm;
@Enumerated(EnumType.STRING)
private Especialidade especialidade;
@Embedded
private Endereco endereco;
public Medico(DadosDeCadastro medico) {
this.nome = medico.nome();
this.email = medico.email();
this.crm = medico.crm();
this.especialidade = medico.especialidade();
this.endereco = new Endereco(medico.endereco());
}
}
Classe MedicoController:
package med.voll.api.controller;
import med.voll.api.medicos.DadosDeCadastro;
import med.voll.api.medicos.Medico;
import med.voll.api.medicos.MedicoRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
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;
@RestController
@RequestMapping("/medicos")
public class MedicoController {
@Autowired
private MedicoRepository repository;
@PostMapping
@Transactional
public void retorno(@RequestBody DadosDeCadastro medico){
repository.save(new Medico(medico));
}
}
Arquivo SQL:
create table medicos(
id SERIAL PRIMARY KEY,
nome varchar(100) not null,
email varchar(100) not null unique,
crm varchar(6) not null unique,
especialidade varchar(100) not null,
logradouro varchar(100) not null,
bairro varchar(100) not null,
cep varchar(9) not null,
complemento varchar(100),
numero varchar(20),
uf char(2) not null,
cidade varchar(100) not null
);