Spring boot возвращает только один объект - PullRequest
0 голосов
/ 02 марта 2020

Я получаю несколько записей из базы данных и хочу вернуть эти значения через API весенней загрузки, я могу получить одно значение, но когда несколько возвращаются из базы данных, API возвращает только последнюю запись

У меня определена эта модель

@Data
public class TestModel {

/** Field rank. (value is "rank") */
private String rank;
/** Field category. (value is "category") */
private String category;
/** Field content. (value is "content") */
private String content;
private String date;
}

И в моем контроллере я заполняю хранилище следующим образом:

private static void populateTestDetails(List<TestModel> testModels, List<Test> test) {
    TestModel testModel = new testModel();
    for (int i = 0; i < wellness.size(); i++) {
        if (test.get(i) != null) {
            Test testValue = test.get(i);

            testModel.setRank(testValue.getRank());
            testModel.setCategory(testValue.getCategory());
            testModel.setContent(testValue.getContent());
            testModel.setDate(testValue.getDate());


        } else {
            testModel.setRank("0");
            testModel.setCategory("null");
            testModel.setContent("0");
            testModel.setDate("null");
        }
    }
    testModels.add(testModel);
}

Я предполагаю, что мой вызов перезаписывается в l oop, как бы я добавил результаты в массив? итак, результаты будут выглядеть так:

[{"rank":"1","category":"test","content":"2","date":"16/01/2020"}, 
{"rank":"2","category":"another test","content":"3","date":"16/01/2020"}]

Я очень новичок в JAVA, поэтому извиняюсь, что мои базовые c знания отсутствуют и терминология может быть неправильной

1 Ответ

1 голос
/ 02 марта 2020

Вы очень близки. Вы должны создать объект TestModel в for l oop, а также добавить его в коллекцию for for l oop (не имеет значения, добавляете ли вы его в начале или в конце)

private static void populateTestDetails(List<TestModel> testModels, List<Test> test) {
    for (int i = 0; i < wellness.size(); i++) {
        TestModel testModel = new testModel();
        testModels.add(testModel);

        if (test.get(i) != null) {
            Test testValue = test.get(i);

            testModel.setRank(testValue.getRank());
            testModel.setCategory(testValue.getCategory());
            testModel.setContent(testValue.getContent());
            testModel.setDate(testValue.getDate());


        } else {
            testModel.setRank("0");
            testModel.setCategory("null");
            testModel.setContent("0");
            testModel.setDate("null");
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...