Sobes.tech
Junior — Middle
100

Quels types de mise en cache sont utilisés dans Hibernate et en quoi diffèrent-ils?

Réponse de l'IA

sobes.tech IA

В Hibernate применяются два основных вида кэширования:

  1. Первичный кэш (First-level cache)

    • Встроен в сессию Hibernate.
    • Кэширует объекты в рамках одной сессии.
    • Автоматический и не требует дополнительной настройки.
    • При повторном запросе объекта с тем же идентификатором в рамках одной сессии объект берётся из кэша, а не из базы.
  2. Вторичный кэш (Second-level cache)

    • Кэшируется на уровне сессии-фабрики (SessionFactory), то есть доступен между сессиями.
    • Требует настройки и подключения провайдера кэша (например, Ehcache, Infinispan).
    • Позволяет кэшировать данные между транзакциями и сессиями, снижая нагрузку на базу.
    • Может кэшировать сущности, коллекции, запросы.

Отличия:

  • Первый кэш ограничен одной сессией, второй — общесессионный.
  • Первый кэш всегда включён, второй — опционален и требует настройки.
  • Вторичный кэш может быть распределённым и более сложным.

Пример настройки второго уровня кэша с Ehcache:

<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>