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

O ID do produto não é preenchido em meu JSON

Olá Pessoal,

Estou com um problema ao tentar criar a oferta da aula. Recebo o seguinte erro:

java.lang.IllegalArgumentException: The given id must not be null!

Notei que ao visualizar o JSON realmente os IDs dos produtos buscados no banco de dados não são preenchidos. Não consigo encontrar o motivo disto estar acontecendo, poderiam me ajudar?

Colocarei algumas classes abaixo que acredito que possam ajudar na resposta. Se precisarem de alguma outra parte do código, é só pedir que encaminho.

PedidosRest

@RestController
@RequestMapping("/api/pedidos")
public class PedidosRest {

    @Autowired
    ProdutoRepository pedidoRepository;

    @GetMapping("aguardando")
    public List<Produto> getPedidosAguardandoOfertas(){
        Sort sort = Sort.by("id").descending();
        PageRequest paginacao = PageRequest.of(0, 10, sort);

        return pedidoRepository.findByStatus(PedidoStatus.AGUARDANDO, paginacao);

    }
}

ProdutoRepository

@Repository
public interface ProdutoRepository extends JpaRepository<Produto, Integer> {

    @Cacheable("produtos")
    List<Produto> findByStatus(PedidoStatus status, Pageable sort);
...

Produto

@Entity
public class Produto {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    private String nomeProduto;
    private BigDecimal valorNegociado;
    private LocalDateTime dataEntrega;
    private String urlProduto;
    private String descricaoProduto;
    private String urlImagem;

    @Enumerated(EnumType.STRING)
    private PedidoStatus status;

    @ManyToOne(fetch = FetchType.LAZY)
    private User user;

...getter e setters
2 respostas
solução!

Você tem o getId() e setId() definidos no seu código de Produto?

Otávio! Muito obrigado, era esse detalhe mesmo! Acho que qdo criei os getters e setters ainda não tinha o atributo do ID e acabei não criando para ele.

Agora td está funcionando normalmente aqui =)