Сегодня Hibernate один из самых популярных enterprise фреймворков и используется почти на каждом проекте. Но, к сожалению, неправильное и неэффективное использование фреймворка приводит к проблемам с производительностью. И так как Hibernate «стоит перед базой данных», эти проблемы одни из самых критичных.Данный тренинг научит вас как измерять производительность, познакомит с различными способами оптимизации. Используя Hibernate на различных проектах, я сталкивался с типичными ошибками, которые допускают разработчики. Я покажу как эффективно их решать на реальных примерах. Тренинг будет базироваться не на сухой теории, а на практических примерах, будут показаны нюансы, баги и подводные камни, с которыми вы можете столкнуться в реальной работе. Также узнаете как Hibernate работает «под капотом». Будет live-coding и задания, так что вы сможете попрактиковаться и закрепить полученные знания.
Для кого подойдет данныйтренинг:
Тренинг не является базовым, если вы только планируете начать работу с Hibernate или недавно начали – данный тренинг не для вас. В основе тренинга будут лежать примеры, основанные на моем жизненном опыте. Акцент будет строиться на подводных камнях и проблемах, с которыми вы можете столкнуться, а не на теории. Тренинг для вас, если:
1. Вы работаете с Hibernate и у вас чувство что вы не понимаете как ведет себя фреймворк, и вы устали от этого.
2. Хотите научиться как эффективно использовать Hibernate.
3. Хотите научиться оптимизировать производительность.
4. Хотите узнать как работает фреймворк ”под капотом”.
Технический минимум: базовые знания JPA/Hibernate (понятие что
такое ORM, какие задачи решает Hibernate, что такое SessionFactory, Session, EAGER, LAZY, LazyInitException, HQL, SQL, базовые знания аннотаций @Entity, @Column, и так далее).
Желательно посмотреть следующие видео:
1. Hibernate, how the magic is really done? (Mikalai Alimenkou and IgorDmitriev)
2. Hibernate performance tuning (Igor Dmitriev and Mikalai Alimenkou)
Детальная программа:
1. Эффективный mapping сущностей (Useful annotations, sequence, lazy vseager, proxy, advanced entity mappings).
2. Различные способы измерения производительности (Statement inspector, P6Spy, etc.).
3. Проблемы производительности и их решения (N+1, Cartesian product, fetch strategies, etc.).
4. Обработка больших объемов данных (batch processing, fetching, scroll, stateless session, bulk operations).
5. Read-only операции (dirty checking, byte code enhancement, projections, read-only queries and transactions, Resultset transformers).
6. Язык запросов (hql ornative query, criteria, doWork, view, advanced query options, customizing sql).
7. Кэш (1st level, 2nd level, query).
8. Транзакции и многопользовательский доступ (Transactions).
9. Миграция на 5+ версию Hibernate (benefits, migration pitfalls).