Вот о чем я думаю, и я хочу знать, считаете ли вы, что это хорошая идея или нет.
Я получаю несколько строк из базы данных, которая в groovy дает мне список списков, например:
[
[ 'Dog', 'M', 'Mutt', 'Sammy' ],
[ 'Cat', 'F', 'Siamese', 'Pat' ],
[ 'Dog', 'M', 'Husky', 'Taco' ],
...
]
Не мой реальный набор данных, но вы поняли.
Поскольку я буду довольно часто извлекать эти данные и анализировать их перед тем, как представить их в пользовательском интерфейсе, я хочу сохранить их в MultiValueMap с ключами groovy maps (т.е. LinkedHashMaps), поэтому могу получить нужные мне кусочки, не заходя в БД каждый раз. Это своего рода кеш подмножества данных из нескольких таблиц (более сложный, чем приведенные выше данные о животных).
Я мог бы использовать это так:
animals.get([species:'Dog', gender:'M'])
возвращает:
[['Sammy', 'Mutt'], ['Taco', 'Husky'] ]
Я думаю, что у меня есть идея, как это реализовать, поэтому я не очень этого ищу (хотя, если у вас есть новое предложение, пожалуйста, поделитесь). В основном я ищу кого-то, кто скажет мне, что либо это не будет работать по какой-то причине, либо звучит нормально, либо не будет масштабироваться и т. Д. Или, может быть, есть более простой способ получить аналогичную функциональность. Еще одно соображение: весь набор данных иногда может быть довольно большим, например, несколько записей по 100 тыс. Если не это, какой хороший способ справиться с этим, кроме попадания в БД каждый раз?
Я понимаю, что существует множество решений для кэширования ключей / значений, но я не думаю, что мне нужно что-то столь тяжелое для того, что я делаю. Это просто небольшое веб-приложение с довольно низким уровнем использования, в основном для компании, для которой я его создаю.