Добавить материал и получить бесплатное свидетельство о публикации в СМИ
Эл. №ФС77-60625 от 20.01.2015
Инфоурок / Информатика / Презентации / Hibernate, fundamentals. Part 4. Для студентов старших курсов университета
ВНИМАНИЮ ВСЕХ УЧИТЕЛЕЙ: согласно Федеральному закону № 313-ФЗ все педагоги должны пройти обучение навыкам оказания первой помощи.

Дистанционный курс "Оказание первой помощи детям и взрослым" от проекта "Инфоурок" даёт Вам возможность привести свои знания в соответствие с требованиями закона и получить удостоверение о повышении квалификации установленного образца (180 часов). Начало обучения новой группы: 24 мая.

Подать заявку на курс
  • Информатика

Hibernate, fundamentals. Part 4. Для студентов старших курсов университета

библиотека
материалов
Hibernate cashe. Part 4 Для студентов старших курсов университетов Ст.препода...
Hibernate cache Довольно часто в java приложениях с целью снижения нагрузки н...
Кеш первого уровня Кеш первого уровня всегда привязан к объекту сессии. Hiber...
Кеш первого уровня В этом примере будет выполнен 1 запрос в базу, несмотря на...
Кеш второго уровня Кеш второго уровня привязан к объекту-фабрике сессий (Ses...
Кеш второго уровня В данном примере будет выполнено 2 запроса в базу, это свя...
Кеш второго уровня  //или в более старых версиях //
Кеш второго уровня Ну и в завершение еще нужно указать самому хибернейту, что...
Кеш третьего уровня Query query = session.createQuery("from SharedDoc doc whe...
Кеш третьего уровня Результаты такого рода запросов не сохраняются ни кешом п...
10 1

Описание презентации по отдельным слайдам:

№ слайда 1 Hibernate cashe. Part 4 Для студентов старших курсов университетов Ст.препода
Описание слайда:

Hibernate cashe. Part 4 Для студентов старших курсов университетов Ст.преподаватель Дудник О.А.

№ слайда 2 Hibernate cache Довольно часто в java приложениях с целью снижения нагрузки н
Описание слайда:

Hibernate cache Довольно часто в java приложениях с целью снижения нагрузки на БД используют кеш. Прежде всего Hibernate cache — это 3 уровня кеширования: Кеш первого уровня (First-level cache); Кеш второго уровня (Second-level cache); Кеш запросов (Query cache);

№ слайда 3 Кеш первого уровня Кеш первого уровня всегда привязан к объекту сессии. Hiber
Описание слайда:

Кеш первого уровня Кеш первого уровня всегда привязан к объекту сессии. Hibernate всегда по умолчанию использует этот кеш и его нельзя отключить. Давайте сразу рассмотрим следующий код: SharedDoc persistedDoc = (SharedDoc) session.load(SharedDoc.class, docId); System.out.println(persistedDoc.getName()); user1.setDoc(persistedDoc); persistedDoc = (SharedDoc) session.load(SharedDoc.class, docId); System.out.println(persistedDoc.getName()); user2.setDoc(persistedDoc);

№ слайда 4 Кеш первого уровня В этом примере будет выполнен 1 запрос в базу, несмотря на
Описание слайда:

Кеш первого уровня В этом примере будет выполнен 1 запрос в базу, несмотря на то, что делается 2 вызова load(), так как эти вызовы происходят в контексте одной сессии. Во время второй попытки загрузить план с тем же идентификатором будет использован кеш сессии. При использовании методов save(), update(), saveOrUpdate(), load(), get(), list(), iterate(), scroll() всегда будет задействован кеш первого уровня.

№ слайда 5 Кеш второго уровня Кеш второго уровня привязан к объекту-фабрике сессий (Ses
Описание слайда:

Кеш второго уровня Кеш второго уровня привязан к объекту-фабрике сессий (Session Factory object). Session session = factory.openSession(); SharedDoc doc = (SharedDoc) session.load(SharedDoc.class, 1L); System.out.println(doc.getName()); session.close(); session = factory.openSession(); doc = (SharedDoc) session.load(SharedDoc.class, 1L); System.out.println(doc.getName()); session.close();

№ слайда 6 Кеш второго уровня В данном примере будет выполнено 2 запроса в базу, это свя
Описание слайда:

Кеш второго уровня В данном примере будет выполнено 2 запроса в базу, это связано с тем, что по умолчанию кеш второго уровня отключен. Для включения необходимо добавить следующие строки в Вашем конфигурационном файле JPA (persistence.xml):

№ слайда 7 Кеш второго уровня  //или в более старых версиях //
Описание слайда:

Кеш второго уровня <property name="hibernate.cache.provider_class" value="net.sf.ehcache.hibernate.SingletonEhCacheProvider"/> //или в более старых версиях // <property name="hibernate.cache.provider_class" value="org.hibernate.cache.EhCacheProvider"/> <property name="hibernate.cache.use_second_level_cache" value="true"/>

№ слайда 8 Кеш второго уровня Ну и в завершение еще нужно указать самому хибернейту, что
Описание слайда:

Кеш второго уровня Ну и в завершение еще нужно указать самому хибернейту, что именно кешировать. К счастью, это очень легко можно сделать с помощью аннотаций, например так: @Entity @Table(name = "shared_doc") @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class SharedDoc{ private Set<User> users; }

№ слайда 9 Кеш третьего уровня Query query = session.createQuery(&quot;from SharedDoc doc whe
Описание слайда:

Кеш третьего уровня Query query = session.createQuery("from SharedDoc doc where doc.name = :name"); SharedDoc persistedDoc = (SharedDoc) query.setParameter("name", "first").uniqueResult(); System.out.println(persistedDoc.getName()); user1.setDoc(persistedDoc); persistedDoc = (SharedDoc) query.setParameter("name", "first").uniqueResult(); System.out.println(persistedDoc.getName()); user2.setDoc(persistedDoc);

№ слайда 10 Кеш третьего уровня Результаты такого рода запросов не сохраняются ни кешом п
Описание слайда:

Кеш третьего уровня Результаты такого рода запросов не сохраняются ни кешом первого, ни второго уровня. Это как раз то место, где можно использовать кеш запросов. Он тоже по умолчанию отключен. Для включения нужно добавить следующую строку в конфигурационный файл: <property name="hibernate.cache.use_query_cache" value="true"/> А также добавить query.setCacheable(true);

Краткое описание документа:

Довольно часто в java приложениях с целью снижения нагрузки на БД используют кеш. Не много людей реально понимают как работает кеш под капотом, добавить просто аннотацию не всегда достаточно, нужно понимать как работает система.

    Кэш-память хранит представление текущего состояния БД для приложения, либо в памяти или на диске компьютера сервера приложения. Кэш – это локальная копия данных. Кэш находится между приложением и БД.

Hibernate предоставляет двухслойную систему кэширования с первым уровнем КЭШа (сессия) и подключаемым КЭШем второго уровня. Кэш первого уровня активен всегда – он используется для разрешения циклических ссылок в вашем графе объектов и для оптимизации производительности на одну единицу работы. (Процессный или кластерный) Кэш второго уровня с другой стороны является опциональным и лучше всего подходит для классов, которые в основном считываются.

Автор
Дата добавления 06.02.2015
Раздел Информатика
Подраздел Презентации
Просмотров205
Номер материала 368341
Получить свидетельство о публикации

Выберите специальность, которую Вы хотите получить:

Обучение проходит дистанционно на сайте проекта "Инфоурок".
По итогам обучения слушателям выдаются печатные дипломы установленного образца.

ПЕРЕЙТИ В КАТАЛОГ КУРСОВ

Похожие материалы

Включите уведомления прямо сейчас и мы сразу сообщим Вам о важных новостях. Не волнуйтесь, мы будем отправлять только самое главное.
Специальное предложение
Вверх