Не удалось создать экземпляр java.util.List с помощью конструктора NO_CONSTRUCTOR с аргументами - PullRequest
0 голосов
/ 30 сентября 2019

Мои данные MongoDB выглядят так:

{
  "college": [
    {
      "batch": {
        "subject": [
          {
            "name": "DBA"
          }
        ],
        "name": "BBA",
        "year": "2016"
      }
    },
    {
      "batch": [
        {
          "subject": [
            {
              "name": "ECO"
            }
          ],
          "name": "BCA",
          "year": "2016"
        },
        {
          "subject": [
            {
              "name": "ECO"
            }
          ],
          "name": "BCA",
          "year": "2016"
        },
        {
          "subject": [
            {
              "name": "ECO"
            }
          ],
          "name": "BCA",
          "year": "2016"
        }
      ]
    }
  ]
}

Я пытаюсь получить все данные из MongoDB с использованием данных Spring MongoDB. Я создал классы сущностей для "College" и "Batch". Похоже, что пакет как объект создается в одном массиве, поэтому он возвращает «Не удалось создать экземпляр java.util.List с помощью конструктора NO_CONSTRUCTOR с аргументами». В любом случае, чтобы решить это? TIA

Мой класс сущностей:

@Document(collection = "college")
public class College {
    private List<Batch> batch;

    public List<Batch> getBatch() {
        return batch;
    }

    public void setBatch(List<Batch> batch) {
        this.batch = batch;
    }
}

и использование mongoRepository для выборки данных

for (College college: collegeRepository.findAll())

1 Ответ

0 голосов
/ 01 октября 2019

Из данных, которые вы имеете в БД, ниже приведены классы, которые вы можете создать

  public class College {
    List<Batch> batches;
    String name;
}

public class Batch {
    List<Subject> subjects;
    String name;
    String year;
}

public class Subject {
    String name;
}

Вышеуказанные классы могут читать / записывать значения в mongoDB в следующем формате

{
    "name": "My College",
    "batches": [
        {
            "name": "BCA",
            "year": "2016",
            "subjects": [
                {
                    "name": "ECO"
                },
                {
                    "name": "EBC"
                },
                {
                    "name": "DFG"
                }
            ]
        },
          {
            "name": "MBA",
            "year": "2018",
            "subjects": [
                {
                    "name": "ABC"
                },
                {
                    "name": "DEF"
                },
                {
                    "name": "GHI"
                }
            ]
        }
    ]
}
...