Инициировать запрос с помощью ActiveJdbc в контроллере

Я запускаю запрос, используя ActiveJdbc

List<Game> games = District.findAll("where createor_id = ?", creatorId);

И согласно документации запрос запускается, когда я это делаю

    for (Game game : games) {
        //do things with result
    }

Но я хочу поместить результат в ModelMap, чтобы использовать его в представлении jstl (Spring mvc 4). Итак, как я могу вызвать запрос? прямо сейчас, чтобы вызвать запрос, который я должен сделать

game.size();

Но я думаю, это оптимальное решение.


person Rony    schedule 17.02.2017    source источник
comment
Я исправил опечатку в заголовке вашего вопроса   -  person ipolevoy    schedule 17.02.2017


Ответы (1)


Вам не следует беспокоиться о том, когда список совершит поездку в базу данных. Если вы просто передадите объект games в JSP, он вызовет БД во время рендеринга страницы. Также вам не нужно делать дополнительный ModelMap, просто передайте список в представление.

Если вы настаиваете на передаче карт в JSP, вы можете сделать это:

List<Map> games = District.findAll("where createor_id = ?", creatorId).toMaps();

Я надеюсь, что это помогает!

person ipolevoy    schedule 17.02.2017
comment
Я не использую скриптлет, я использую jstl, поэтому я использую свой ‹c:foreach›‹/c:foreach›. И это ничего не вызывает, если список пуст. Если я использую его со скриптлетом ‹% для (Game game : games) { } %›, это сработает. Так что да, я буду использовать решение, которое вы мне дали. Спасибо. - person Rony; 17.02.2017
comment
чтобы узнать, пуст ли список, кто-то попытается вызвать list.size() или другой метод. Это инициирует поездку в базу данных. В любом случае, рад, что это работает для вас. - person ipolevoy; 18.02.2017