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

[Bug] Unknown colum

Olá pessoal, estou fazendo o curso de spring boot 3 e estou tomando esse erro.

 [Unknown column 'public_place' in 'field list'] [insert into doctors (city,complement,neighborhood,number,public_place,state,zip_code,customer_relation_management,email,name,specialty) values (?,?,?,?,?,?,?,?,?,?,?)]; SQL [insert into doctors (city,complement,neighborhood,number,public_place,state,zip_code,customer_relation_management,email,name,specialty) values (?,?,?,?,?,?,?,?,?,?,?)]

Tentei pesquisar mas não entendi direito.

4 respostas

Olá Igor, tudo bem?

Pelo erro apresentado, parece que está faltando uma coluna chamada "public_place" na tabela "doctors". Verifique se essa coluna realmente existe na sua tabela. Caso não exista, você pode adicioná-la utilizando o comando ALTER TABLE.

Segue um exemplo de como adicionar uma coluna em uma tabela:

ALTER TABLE doctors ADD COLUMN public_place VARCHAR(100);

Lembre-se de substituir "VARCHAR(100)" pelo tipo de dado que você deseja utilizar na sua coluna.

Espero ter ajudado e bons estudos!

Então, mas a variável está publicPlace. A coluna também está como publicPlace como todas as outras variáveis em camel case.

create table doctors(

    id bigint not null auto_increment,
    name varchar(100) not null,
    email varchar(100) not null unique,
    customerRelationManagement varchar(6) not null unique,
    specialty varchar(100) not null,
    publicPlace varchar(100) not null,
    neighborhood varchar(100) not null,
    zipCode varchar(9) not null,
    state char(100) not null,
    city varchar(100) not null,
    number varchar(20),
    complement varchar(100),

    primary key(id)

);
@Embeddable
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class Adress {

    private String publicPlace;
    private String neighborhood;
    private String zipCode;
    private String number;
    private String complement;
    private String city;
    private String state;

    public Adress(AdressDTO adressDTO) {
        this.publicPlace = adressDTO.publicPlace();
        this.neighborhood = adressDTO.neighborhood();
        this.zipCode = adressDTO.zipCode();
        this.number = adressDTO.number();
        this.complement = adressDTO.complement();
        this.city = adressDTO.city();
        this.state = adressDTO.state();
    }
}
@Entity(name = "doctor")
@Table(name = "doctors")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(of = "id")
public class Doctor {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private String email;
    private String customerRelationManagement;

    @Enumerated(EnumType.STRING)
    private DoctorSpecialty specialty;
    @Embedded
    private Adress adress;

    public Doctor(DoctorDTO doctorDTO) {
        this.name = doctorDTO.name();
        this.email = doctorDTO.email();
        this.customerRelationManagement = doctorDTO.customerRelationManagement();
        this.specialty = doctorDTO.specialty();
        this.adress = new Adress(doctorDTO.adress());
    }
}

E isso está me gerando essa dúvida, até pq coloquei a anotação @Columun com o nome específico também e não funcionou

solução!

Eu tive que mapear todas as propriedades com os nomes das colunas , ai resolveu :D