1. Объектно-реляционное отображение (ORM): Hibernate предоставляет механизм для отображения объектов Java на таблицы в базе данных, а также для выполнения операций CRUD (создание, чтение, обновление, удаление) с этими объектами. Это позволяет разработчикам работать с объектами, а не с SQL-запросами и таблицами базы данных. 2. Единица работы (Unit of Work): Hibernate использует паттерн Единица работы для управления изменениями объектов и их синхронизации с базой данных. Когда изменения в объектах происходят в пределах определенной "единицы работы", Hibernate автоматически синхронизирует эти изменения с базой данных. 3. Ленивая загрузка (Lazy Loading): Hibernate использует паттерн Ленивая загрузка для отложенной загрузки данных из базы данных. Это означает, что данные из базы данных загружаются только тогда, когда они действительно нужны, что может повысить производительность приложения. 4. Сессия (Session): Hibernate использует паттерн Сессия для управления жизненным циклом объектов и их сохранением в базе данных. Сессия представляет собой контекст, в котором выполняются операции с объектами, такие как сохранение, обновление и удаление. 5. Фабрика сеансов (Session Factory): Hibernate использует паттерн Фабрика сеансов для создания и управления сеансами (сессиями). Фабрика сеансов предоставляет методы для создания новых сеансов, а также управления пулом сеансов. 6. Интерцептор (Interceptor): Hibernate использует паттерн Интерцептор для перехвата и обработки операций с объектами перед их выполнением или после них. Это позволяет разработчикам внедрять свою логику и поведение в процесс работы Hibernate. 7. Кэширование (Caching): Hibernate использует паттерн Кэширование для улучшения производительности приложения. Он предоставляет механизмы для кэширования объектов и запросов, что позволяет избежать повторных обращений к базе данных. • Domain Model – объектная модель предметной области, включающая в себя как поведение, так и данные; • Data Mapper – слой мапперов (Mappers), который передает данные между объектами и базой данных, сохраняя их независимыми друг от друга и себя; • Proxy – применяется для ленивой загрузки; • Factory – используется в SessionFactory.