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

erro com o GET

Olá,

alguém sabe qual o motivo desse erro? Insira aqui a descrição dessa imagem para ajudar na acessibilidade

3 respostas

Olá André, tudo bem com você?

Esse erro está indicando que a entrada de dados está inválido, porque não existe uma constante na enumeração Status, com o valor 0. Verifique a classe Status para conferir se há uma enumeração para o valor 0; se quiser, você pode compartilhar o código do seu projeto e olhamos juntos!

Fico à disposição.

Um grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Olá Arthur, obrigado pelo auxilio segue as classes , porem a DTO nem esta para mostras a informação Status (a que é ENUM)

Controller

@GetMapping public List listar(){ return repository.findAll().stream().map(ListarFornecedoresDTO::new).toList(); } }


DTO

package br.com.andre.sistema.models.dtos;

import br.com.andre.sistema.models.Fornecedor; import br.com.andre.sistema.models.enuns.Status;

public record ListarFornecedoresDTO(String cnpj, String ie, String email) {

public ListarFornecedoresDTO(Fornecedor fornecedor) {
    this(fornecedor.getCnpj(),fornecedor.getIe(),fornecedor.getEmail());

} }


Model
package br.com.andre.sistema.models;

import java.io.Serializable; import java.util.Objects;

import br.com.andre.sistema.models.dtos.CadastroFornecedorDTO; import br.com.andre.sistema.models.enuns.Status; import jakarta.persistence.Embedded; import jakarta.persistence.Entity; import jakarta.persistence.EnumType; import jakarta.persistence.Enumerated; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.MapsId; import jakarta.persistence.OneToOne; import jakarta.persistence.Table;

@Entity(name = "fornecedor") @Table(name = "fornecedores") public class Fornecedor implements Serializable { private static final long serialVersionUID = 1L;

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

@Enumerated(EnumType.STRING)
private Status status;

@OneToOne
@MapsId
private Pessoa nome;

@Embedded
private Endereco endereco;

public Fornecedor() {

}

public Fornecedor(Long id, String cnpj, String ie, String email, Status status, Pessoa nome, Endereco endereco) {
    super();
    this.id = id;
    this.cnpj = cnpj;
    this.ie = ie;
    this.email = email;
    this.status = status;
    this.nome = nome;
    this.endereco = endereco;
}

public Fornecedor(CadastroFornecedorDTO fornecedor) {
    this.cnpj = fornecedor.cnpj();
    this.ie = fornecedor.ie();
    this.email = fornecedor.email();
    this.status = fornecedor.status();
    this.nome = new Pessoa(fornecedor.pessoa());
    this.endereco = new Endereco(fornecedor.endereco());

}

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public String getCnpj() {
    return cnpj;
}

public void setCnpj(String cnpj) {
    this.cnpj = cnpj;
}

public String getIe() {
    return ie;
}

public void setIe(String ie) {
    this.ie = ie;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public Status getStatus() {
    return status;
}

public void setStatus(Status status) {
    this.status = status;
}

public Pessoa getNome() {
    return nome;
}

public void setNome(Pessoa nome) {
    this.nome = nome;
}

@Override
public int hashCode() {
    return Objects.hash(cnpj, id);
}

@Override
public boolean equals(Object obj) {
    if (this == obj)
        return true;
    if (obj == null)
        return false;
    if (getClass() != obj.getClass())
        return false;
    Fornecedor other = (Fornecedor) obj;
    return Objects.equals(cnpj, other.cnpj) && Objects.equals(id, other.id);
}

}

solução!

acabei de descobrir!

por algum motivo desconhecido, no banco de dados o campo Status gravou o numero zero!