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

Consulta por numero do pedido com retorno infinito

Olá Colegas!

Seguindo os passos da aula, depois de popular um ou mais pedidos, tentei fazer a consulta informando o numero do pedido. Só que ele cai num loopin infinito nos arrays de itens e pedidos, acredito que por causa do tipo do relacionamento. Eu tentei usar o @JsonIgnore sob o atributo Pedido na classe ItemPedido pra não repetir, porem ele quebra a consulta.

Como faço pra informar o numero do pedido e ele retornar os dados do pedidos e a lista de itens?

[
    {
        "id": 1,
        "valorTotal": 7000.00,
        "data": "2022-04-27",
        "itens": [
            {
                "id": 1,
                "precoUnitario": 3500.00,
                "quantidade": 2,
                "pedido": {
                    "id": 1,
                    "valorTotal": 7000.00,
                    "data": "2022-04-27",
                    "itens": [
                        {
                            "id": 1,
                            "precoUnitario": 3500.00,
                            "quantidade": 2,
                            "pedido": {
                                "id": 1,
                                "valorTotal": 7000.00,
                                "data": "2022-04-27",
                                "itens": [
                                    {
                                        "id": 1,
                                        "precoUnitario": 3500.00,
                                        "quantidade": 2,
                                        "pedido": {
                                            "id": 1,
                                            "valorTotal": 7000.00,
                                            "data": "2022-04-27",
                                            "itens": [
                                                { ... continua até quebrar...
2 respostas
solução!

Oi Ailton,

Imagino que você deve estar utilizando uma consulta JPA numa api rest que devolve um json, certo?

Para evitar esse problema o ideal é não retornar uma entidade JPA pelo controller, mas sim criar uma classe DTO contendo os dados que você deseja retornar, para deixar o código mais flexível, seguro e evitar esse problema de loop infinito por conta dos relacionamentos na entidade.

Puxa Rodrigo, sou sincero que eu estava preparado pra essa resposta, tanto que já me adiantei e comecei a modelar os DTOS de Pedido e de ItensPedido. Eu esperava que tivesse algo mais simples :), mas paciência. Obrigado pelo retorno de sempre. Depois coloco aqui minha solução pra você validar. Valeu!