Boa noite.
Estou montando uma API de uma agenda com o cadastro da pessoa e os tipos / números dos telefones.
Quando estuo enviando o JSon para testar pelo Postman, se enviar somente os dados do cadastro, ele grava normalmente.
Quando mando junto os dados da tabela de telefone, ele dá erro.
Vocês podem me ajudar a achar o erro.
Desde já, agradeço a todos pela ajuda.
Segue abaixo o erro e em segunda as entidades.
ERRO
Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type java.util.ArrayList<com.pjem.pessoas.entity.Phone>
from Object value (token JsonToken.START_OBJECT
); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type java.util.ArrayList<com.pjem.pessoas.entity.Phone>
from Object value (token JsonToken.START_OBJECT
) at [Source: (PushbackInputStream); line: 14, column: 12] (through reference chain: com.pjem.pessoas.entity.Person[“telefone”])]
Entidade Person
@Entity
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "pessoas")
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id_pessoa;
@Column(nullable = false)
private String nome;
@Column(nullable = false)
private String endereco;
@Column(nullable = false)
private int numero;
private String complemento;
@Column(nullable = false)
private String bairro;
@Column(nullable = false)
private String cidade;
@Column(nullable = false)
private String uf;
private LocalDate aniversario;
@Column(nullable = false)
private LocalDate cadastro;
@Column(nullable = false, unique = true)
private String cpf;
@OneToMany(fetch = FetchType.LAZY,
cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE}) // define em quais situações será utlizado
private List<Phone> Telefone = new ArrayList<>(); // cria uma lista telefone através da classe Telefone
}
Entidade Phone
@Entity
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "telefone")
public class Phone {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id_telefone;
private String tipo_telefone;
private String numero;
}
Json enviado
{
"nome": "Joaquim da Silva",
"cpf":"12345678911",
"endereco":"Teste de endereço",
"numero":1234,
"complemento":"casa 123",
"Bairro":"Bairro",
"cidade":"Cidade",
"uf":"uf",
"aniversario":"1967-01-29",
"cadastro":"2022-01-29",
"telefone":{
"tipo":"fixo",
"numero":"(11) 47217680"
}
}