Прежде всего, я нахожу данные из упомянутой статьи чрезвычайно странными (19-е, чтобы получить соединение, предполагают конфликт в пуле соединений). Поэтому я бы взял его с крошкой соли.
Мы уже используем платформу Seam EntityQuery для всех наших запросов, возможно ли включить вышеуказанную опцию, когда вы сначала обращаетесь к ehcache перед запросом или загрузкой объектов.
Ну, вот как на самом деле работает кеш Hibernate L2. Как упомянуто в в предыдущем ответе , Кэш второго уровня Hibernate - это кэш для чтения и записи, при котором в случае пропуска кэша сущность считывается из базы данных и затем передается в кэш для последующего доступа .
Теперь, если вы имеете в виду реализацию третьего варианта, это будет означать обход полностью кэша Hibernate L2 и выполнение всего вручную. Конечно, это возможно, но вы здесь сами по себе. И, как я уже сказал, я очень сомневаюсь, что прохождение через Hibernate влечет за собой слишком много накладных расходов, поэтому я не буду основывать решение на упомянутой статье. Мера вещи.
Как в таких случаях обрабатывается изменение или удаление объекта, нужно ли вручную извлекать эти записи из кэша.
Полностью вручную. Удачи в транзакциях, обработке ошибок, параллелизме и т. Д.