Этот метод возвращает объект, который является сопоставимым и хешируемым и используется во время кэширования источников данных. Это позволяет нам создавать какие-то ключи для обнаружения изменений в определении соединения, в то время как многие отчеты выполняются в одной и той же JVM.
Сама реализация кеша не знает никаких деталей о различных источниках данных, и «ConnectionHash» позволяет нам сохранять отдельные наборы результатов.
Моя базовая реализация просто возвращает ArrayList со всеми соответствующими свойствами соединения, добавленными к нему.
Простой пример того, как и где это необходимо:
Представьте, что у вас есть источник данных JDBC, который подключается к базе данных, где существует несколько схем с одинаковыми структурами таблиц, например, в мультитенантной среде, где у каждого арендатора есть своя собственная схема.
С помощью запроса типа «ВЫБРАТЬ * ОТ КЛИЕНТОВ, ГДЕ СТРАНА = $ {страна-параметр}» источник данных будет возвращать различные наборы данных, в зависимости от того, какой запрос выполняет клиент. Сумма «connection-hash», «query-name» и «parameter, используемого в запросе» теперь образует уникальный идентификатор, который мы можем использовать для хранения и последующего поиска набора результатов из кэша.