Robot
Складчик
- #1
[Spring АйО] Продвинутый Hibernate: решение вызовов уровня Enterprise [Михаил Поливаха]
- Ссылка на картинку

Программа курса
Блок 1. Стратегии оптимизации: от базы к продвинутому тюнингу
Цель: производительность «в моменте», применимо завтра
-findById vs getReferenceById (Proxy)
Минимизируем количество SELECT при сохранении связей на ровном месте
-Page vs Slice vs List
Разбор ситуаций, когда count(*) становится непозволительной роскошью
-@BatchSize
Лечение N+1 в ситуациях, когда JOIN FETCH либо невозможен, либо от него больше вреда, чем пользы
-StatelessSession
Bulk-задачи в обход Persistence Context, без dirty checking и L1 cache
-Pagination evolution
Почему OFFSET убивает БД. Реализация
Keyset (Seek-based) pagination. Разбор кейсов, когда Keyset pagination не стоит свеч
-Heavy columnsCLOB/BLOB, @DynamicUpdate и bytecode enhancement для ленивой загрузки
Блок 2. Преодоление ограничений ORM: маппинг и выборки
Цель: framework для типичных вызовов ORM/Hibernate
-Pageable + FETCH JOIN
Мина замедленного действия (in-memory pagination), двухэтапная выборка и DTO-проекции
-MultipleBagFetchException
Почему нельзя fetch нескольких коллекций, List → Set: плюсы и скрытые риски и альтернативы
Блок 3. Enterprise-кейсы: архитектура, надежность и big data
Цель: разбор реальных enterprise проблем и решений
-Soft Delete
Как выглядит правильная и производительная реализация Soft Delete в современных версиях Hibernate.Скрытые риски @SoftDelete
-Gigantic Collections
Как жить, когда в @OneToMany могут быть сотни или даже тысячи элементов: почему обычные коллекции тут антипаттерн
-Transactional Outbox
Доставка в Kafka/RabbitMQ без XA, polling publisher и очередь в БД
-Хранение Иерархии в БД
Проверенные временем алгоритмы хранения графов и древовидных структур в БД. Adjacency List vs Materialized Path, Recursive CTE имаппинг в JPA
-Multi-tenancy в 2026
Безопасная multi-tenancy архитектура. @TenantId в Hibernate 6, стратегии shared/separate schema/db, TenantResolver и безопасность сессии
Блок 1. Стратегии оптимизации: от базы к продвинутому тюнингу
Цель: производительность «в моменте», применимо завтра
-findById vs getReferenceById (Proxy)
Минимизируем количество SELECT при сохранении связей на ровном месте
-Page vs Slice vs List
Разбор ситуаций, когда count(*) становится непозволительной роскошью
-@BatchSize
Лечение N+1 в ситуациях, когда JOIN FETCH либо невозможен, либо от него больше вреда, чем пользы
-StatelessSession
Bulk-задачи в обход Persistence Context, без dirty checking и L1 cache
-Pagination evolution
Почему OFFSET убивает БД. Реализация
Keyset (Seek-based) pagination. Разбор кейсов, когда Keyset pagination не стоит свеч
-Heavy columnsCLOB/BLOB, @DynamicUpdate и bytecode enhancement для ленивой загрузки
Блок 2. Преодоление ограничений ORM: маппинг и выборки
Цель: framework для типичных вызовов ORM/Hibernate
-Pageable + FETCH JOIN
Мина замедленного действия (in-memory pagination), двухэтапная выборка и DTO-проекции
-MultipleBagFetchException
Почему нельзя fetch нескольких коллекций, List → Set: плюсы и скрытые риски и альтернативы
Блок 3. Enterprise-кейсы: архитектура, надежность и big data
Цель: разбор реальных enterprise проблем и решений
-Soft Delete
Как выглядит правильная и производительная реализация Soft Delete в современных версиях Hibernate.Скрытые риски @SoftDelete
-Gigantic Collections
Как жить, когда в @OneToMany могут быть сотни или даже тысячи элементов: почему обычные коллекции тут антипаттерн
-Transactional Outbox
Доставка в Kafka/RabbitMQ без XA, polling publisher и очередь в БД
-Хранение Иерархии в БД
Проверенные временем алгоритмы хранения графов и древовидных структур в БД. Adjacency List vs Materialized Path, Recursive CTE имаппинг в JPA
-Multi-tenancy в 2026
Безопасная multi-tenancy архитектура. @TenantId в Hibernate 6, стратегии shared/separate schema/db, TenantResolver и безопасность сессии
Показать больше
Зарегистрируйтесь
, чтобы посмотреть скрытый контент.