Olá pessoal, minha dúvida é que quando envio a requisição para a api, recebo o retorno abaixo:
"timestamp": "2024-06-03T18:32:47.678+00:00",
"status": 500,
"error": "Internal Server Error",
"trace": "org.springframework.orm.jpa.JpaSystemException: Unable to locate constructor for embeddable 'acai.tech.api.endereco.Endereco'\r\n\tat org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.
Segue a minha classe endereço:
package tech.api.endereco;
import jakarta.persistence.Embeddable;
// Minha classe endereco
@Embeddable
public class Endereco {
//Inicio dos atributos
private int numero;
private String complemento;
private String bairro;
private String cidade;
private String estado;
private int cep;
private String endereco;
// Final dos atributos
// Inicio do construtor
public Endereco(DadosCadastroEndereco dados)
{
this.numero=dados.numero();
this.complemento=dados.complemento();
this.bairro=dados.bairro();
this.cidade=dados.cidade();
this.estado=dados.estado();
this.cep=dados.cep();
this.endereco=dados.endereco();
}
// Final do construtor
// Inicio dos getters e setters
public int getNumero() {
return numero;
}
public void setNumero(int numero) {
this.numero = numero;
}
public String getComplemento() {
return complemento;
}
public void setComplemento(String complemento) {
this.complemento = complemento;
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
public int getCep() {
return cep;
}
public void setCep(int cep) {
this.cep = cep;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
// Final dos getters e setters
}
Essa é a minha classe cliente (médico):
package tech.api.cliente;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import acai.tech.api.endereco.Endereco;
// Essa e a minha classe cliente
// Essa classe do java esta sendo mapeada no banco na tabela da linha abaixo.
@Table(name="cliente")
@Entity(name="Clientes")
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class Cliente
{
// Inicio dos atributos
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String nome;
private String email;
private long telefone;
private long cpf;
@Embedded
private Endereco endereco;
//Final dos atributos
// Inicio do construtor
public Cliente(DadosCadastroCliente dados)
{
this.nome=dados.nome_completo();
this.email=dados.email();
this.telefone=dados.telefone();
this.cpf=dados.cpf();
this.endereco=new Endereco(dados.logradouro());
}
// Final do construtor
// Inicio dos getters e setters
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public long getTelefone() {
return telefone;
}
public void setTelefone(long telefone) {
this.telefone = telefone;
}
public long getCpf() {
return cpf;
}
public void setCpf(long cpf) {
this.cpf = cpf;
}
public Endereco getInfos_endereco() {
return endereco;
}
public void setInfos_endereco(Endereco infos_endereco) {
this.endereco = infos_endereco;
}
//Final dos getters e setters
}
Já tentei algumas soluções aqui do fórum mas não consegui chegar do outro lado. Estou utilizando o eclipse.