Сколько запросов к БД будет сделано при использовании кэша второго уровня Hibernate?
Допустим есть 2 пользователя, которые выполняют запросы к БД из разных потоков в рамках собственных сессий: запрос1 -> запрос2 -> запрос3 -> запрос1
Мне был задан вопрос сколько реальных запросов к БД выполнится в случае отдельно настроенных кэша 1 уровня и кэша 2 уровня.
В случае кэша 1 уровня я ответил, что будет выполнено 6 реальных запросов, поскольку каждый из пользователей принадлежит разным сессиям. Каждый пользователь выполнит по 3 реальных запроса и 1 возьмет из кэша первого уровня. В итоге 6. Этот ответ у меня приняли.
В случае кэша 2 уровня я ответил, что в сумме на двоих пользователей будет выполнено всего 3 реальных запроса, поскольку в этом случае кэширование идёт на уровне фабрики сессий. Но этот ответ оказался неправильным.
Действительно ли ответ "3" во втором случае неправильный и если да, то какой ответ верен?