Estou fazendo uma API onde um produto pode ter várias imagens:
Banco:
Minhas classes estão assim:
package br.com.helptechbackend.model;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.validation.constraints.NotBlank;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
@Entity
@Table(name = "table_produto")
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class Produto {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "produto_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "nome")
@NotBlank(message = "O nome é um campo obrigatório!")
private String nome;
@Column(name = "descricao")
@NotBlank(message = "Informe uma descrição para o produto!")
private String descricao;
@Column(name = "avaliacao")
private int avaliacao = 0;
@Column(name = "preco")
private double preco;
@Column(name = "estoque")
private Integer estoque;
@Column(name = "status")
private boolean status = false;
@OneToMany(mappedBy = "produto_id", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private List<Imagem> images = new ArrayList<>();
public void adicionarImagem(Imagem img) {
img.setProduto_id(this);
this.images.add(img);
}
}
package br.com.helptechbackend.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
@Entity
@Table(name = "table_imagem")
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class Imagem {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "images_id")
private int id;
@Column(name = "url")
private String url;
@Column(name = "tipo")
private String tipo;
@ManyToOne(fetch = FetchType.LAZY)
private Produto produto_id;
}
Mas quando faço uma consulta usando a API que criei da esse erro: