Каждая строка в моей БД будет как этотИспользование RowMapper вернуться Map <String, Map <String, List <Object> >>
School Class StudentID Name Age
123 8 811 John 10
123 8 812 Smith 11
123 8 821 John 12
123 8 822 Smith 13
123 9 911 John 14
123 9 912 Smith 15
456 8 811 John 10
456 8 812 Smith 11
Теперь я хочу, чтобы вернуть вышеуказанные данные, как это
Map<String,Map<String,List<Object>>>
ie. Map<School,Map<Class,List<StudentID>>>
Я использую Spring JdbcTemplate
с RowMapper
, но все, что я могу получить, это список всех строк. Поскольку я не смогу поддерживать свою основную карту в своем RowMapper (, могу ли я иметь статическую карту внутри класса RowMapper? Но я не хочу, чтобы она была статичной, так как это веб-сервис, и последующие вызовы могут быть завинчены.) , У меня есть только возможность получить этот список Row, а затем у меня есть логика для создания коллекции, которую я хочу.
Я узнал о ResultSetExtractor
, но не смог найти, как это сделать, используя это.
Пожалуйста, дайте мне знать, если есть какой-либо способ, которым я могу это сделать, используя сопоставление строк или какой-либо вид. Или мой единственный способ решить это - мне снова повторить список и получить то, что я хочу.
EDIT: Мой запрос является запрос на выборку, как это:
SELECT * from TABLENAME
и это на самом деле занимает 40 минут, чтобы получить ResultSet от Java.
Поскольку вызов БД предназначен для заполнения объекта кеша, который выполняется с использованием CRON каждые 4 часа, я не возражаю против временной задержки 40 минут с момента фактических вызовов REST, будет ссылаться на объект кеша. Но все же я хочу сделать это максимально эффективно.
Также, пожалуйста, дайте мне знать, если есть какой-либо другой способ, которым я могу справиться с этим сценарием. Обычный вызов jdbc для каждого вызова REST будет дорогостоящим, так как мы будем получать 100 запросов в секунду.
Я предполагаю, что у вас есть 'DAO' класс для каждого из субъектов? Почему бы не позволить вашему DAO преобразовать «Список» в «Карта» и вернуть его во внешний мир? – CKing
Вызов jdbcTemplate находится внутри DAO, я хочу знать, можно ли это сделать с помощью RowMapper. – v1shnu
Итак, вы в основном хотите, чтобы 'JdbcTemplate' формировал« карту »для вас, когда вы выполняете запрос с ней? Я полагаю, что любое решение, которое вы реализуете, в конечном итоге просто преобразует «Список» в «Карту» внутри, поэтому почему бы не позволить вашему «DAO» сделать это? – CKing