В последнее время я написал много учебных материалов по Hibernate. Hibernate – один из лучших инструментов для объектно-реляционного отображения (ORM) на языке Java на текущем рынке. Этот пост похож на индекс всех статей по Hibernate и примеров. Вы можете пройти по этим учебникам по Hibernate последовательно, чтобы изучить Hibernate с нуля. Вероятно, я буду добавлять ещё учебных материалов по Hibernate в этот список, поэтому вам, возможно, стоит добавить его в закладки и время от времени проверять.
Учебник по Hibernate
- Учебник по Hibernate для начинающих Hibernate поддерживает аннотации JPA и очень гибок. Мы можем настраивать его с использованием XML, файлов свойств, а также программным образом. Этот учебник – отличный способ начать работу с фреймворком Hibernate. В нем рассматриваются различные конфигурации, необходимые для Hibernate, и предоставляются примеры простого отображения на основе XML, а также отображения на основе аннотаций JPA. Вы также узнаете различные способы инициализации
SessionFactory
и важные компоненты фреймворка Hibernate. - Сопоставление один к одному Hibernate В большинстве случаев таблицы базы данных связаны между собой. Существует много форм ассоциации – один к одному, один ко многим и многие ко многим на широком уровне, которые могут быть дополнительно разделены на однонаправленные и двунаправленные отображения. В этом руководстве мы рассмотрим реализацию сопоставления один к одному Hibernate с использованием конфигурации XML, а также с использованием конфигурации аннотаций JPA.
- Сопоставление один ко многим Hibernate Простыми словами, сопоставление один ко многим означает, что одна строка в таблице может быть сопоставлена с несколькими строками в другой таблице. Например, представьте систему корзины, где у нас есть еще одна таблица для товаров. В корзине может быть несколько товаров, так что здесь у нас сопоставление один ко многим. В этом руководстве вы узнаете, как реализовать сопоставление один ко многим с использованием конфигурации на основе XML, а затем с использованием аннотаций Hibernate.
- Сопоставление многие ко многим Hibernate Сопоставление многие ко многим обычно реализуется в базе данных с использованием таблицы соединений, например, у нас может быть таблица Cart и Item, а также таблица Cart_Items для сопоставления многие ко многим. У каждой корзины может быть несколько товаров, и каждый товар может быть частью нескольких корзин, поэтому здесь у нас сопоставление многие ко многим. Это руководство объясняет о многие ко многим в Hibernate как однонаправленное, так и двунаправленное отображение.
- Язык запросов Hibernate (HQL) Фреймворк Hibernate поставляется с мощным объектно-ориентированным языком запросов – Hibernate Query Language (HQL). Он очень похож на SQL, за исключением того, что вместо имен таблиц мы используем объекты, что делает его ближе к объектно-ориентированному программированию. В этой статье объясняется HQL и различные клозы, поддерживаемые языком HQL.
- Нативные SQL-запросы Hibernate Hibernate предоставляет возможность выполнения нативных SQL-запросов с помощью объекта SQLQuery. Это очень удобно, когда мы хотим выполнить запросы, специфичные для базы данных, которые не поддерживаются API Hibernate, такие как подсказки запросов или ключевое слово CONNECT в базе данных Oracle.
- Именованные запросы Hibernate Если есть много HQL или нативных SQL-запросов, то это вызовет беспорядок в коде, потому что все запросы будут разбросаны по всему проекту. Поэтому Hibernate предоставляет именованный запрос, который мы можем определить в центральном месте и использовать его в любом месте кода. Мы можем создавать именованные запросы как для HQL, так и для нативного SQL. Именованные запросы Hibernate могут быть определены в файлах маппинга Hibernate с использованием элемента
query
илиsql-query
или с помощью аннотаций JPA @NamedQuery и @NamedNativeQuery. - Hibernate Criteria Hibernate предоставляет API Criteria, которое более ориентировано на объекты для выполнения запросов к базе данных и получения результатов. Мы не можем использовать Criteria для выполнения запросов на обновление или удаление или любых операторов DDL. Он используется только для извлечения результатов из базы данных с использованием более объектно-ориентированного подхода. Некоторые общие применения API Criteria включают проекцию, которую мы можем использовать для агрегирующих функций, таких как sum(), min(), max() и т. д., ProjectionList для извлечения только выбранных столбцов, упорядочивание результатов и т. д.
- Hibernate First Level Cache Кэш Hibernate может быть очень полезен для повышения производительности приложения при правильном использовании. Идея кэша заключается в уменьшении количества запросов к базе данных, тем самым уменьшая время обработки приложения. Первый уровень кэша Hibernate связан с объектом Session. Первый уровень кэша Hibernate включен по умолчанию, и нет способа его отключить. Тем не менее Hibernate предоставляет методы, с помощью которых мы можем удалить выбранные объекты из кэша или полностью очистить кэш. Любой объект, кэшированный в сеансе, не будет виден другим сеансам, и при закрытии сеанса все кэшированные объекты также будут потеряны.
- Кэш второго уровня Hibernate с EHCache Поставщики кэша второго уровня Hibernate включают EHCache и Infinispan, но EHCache более популярен, потому что его легко интегрировать и он поддерживает все стратегии кэширования Hibernate. Этот учебник предоставляет полный пример интеграции EHCache с фреймворком Hibernate.
- Получение Hibernate по сравнению с загрузкой Сессия Hibernate предоставляет различные методы для извлечения данных из базы данных. Два из них – get() и load(). Существует также множество перегруженных методов для них, которые мы можем использовать в различных ситуациях. На первый взгляд оба метода get() и load() кажутся похожими, потому что оба извлекают данные из базы данных. Однако между ними есть несколько различий, этот учебник объясняет их на примере кода.
- Сохранение Hibernate по сравнению с настойчивостью Сессия Hibernate – это интерфейс между приложением на Java и фреймворком Hibernate. Этот учебник объясняет об основных методах сессии для сохранения и обновления данных в таблицах – save, saveOrUpdate, persist, update и merge.
- Открытие сеанса Hibernate vs getCurrentSession Класс Hibernate SessionFactory – это фабрика, через которую мы получаем сеансы и выполняем операции с базой данных. Hibernate SessionFactory предоставляет три метода, с помощью которых мы можем получить объект Session – getCurrentSession(), openSession() и openStatelessSession(). В этом учебнике объясняется каждый из них с примером кода.
- Интеграция Hibernate с log4j Hibernate 4 использует журналирование JBoss, но log4j является наиболее популярным фреймворком журналирования. Краткое руководство по интеграции журналирования log4j с фреймворком Hibernate.
- Пример Hibernate Tomcat JNDI DataSource В большинстве случаев фреймворк Hibernate используется в веб-приложениях, работающих в Tomcat или любом другом контейнере сервлетов. Hibernate может использовать DataSource, определенный как ресурс JNDI в контейнере, это предпочтительный подход, позволяющий контейнеру сервлетов обрабатывать соединения с базой данных с использованием пула соединений.
- Интеграция Spring Hibernate Spring – один из самых используемых фреймворков Java EE, а Hibernate – наиболее популярный фреймворк ORM. Поэтому комбинация Spring Hibernate часто используется в корпоративных приложениях. В этом учебнике используется Spring 4 для его интеграции с Hibernate 3, а затем обновляется тот же проект для использования Hibernate 4.
- Пример Spring MVC Hibernate Этот учебник продвигается вперед и объясняет, как интегрировать Hibernate с Spring MVC и использовать управление транзакциями Spring декларативным образом, а не использовать управление транзакциями Hibernate.
- Пример интеграции Struts2 Hibernate Этот учебник объясняет общий способ интеграции Hibernate с любым веб-приложением с использованием ServletContextLister, пример использует Struts2 с Hibernate, но интеграция за кулисами выполняется только с помощью технологии Servlet. Это отличается от интеграции Spring, потому что Struts2 не предоставляет встроенной поддержки для интеграции с Hibernate.
- Пример валидатора Hibernate Валидация данных – это неотъемлемая часть любого приложения. Это поперечная задача, которая происходит на уровне представления, уровне бизнеса, а также на уровне постоянства. Вот почему JSR-303 предоставляет стандарт на основе аннотаций для применения валидации для свойств бинов Java. Hibernate Validator предоставляет поддержку для JSR-303, и этот учебник показывает его использование на простом примере.
- Плагин Hibernate Tools для Eclipse Если вы работали над проектами Hibernate, вам должны быть знакомы многие свойства, которые нам нужны для отображения Hibernate и файла конфигурации. Без подходящего инструмента, который может помочь нам в поиске правильных свойств, будет очень сложно правильно настроить наше приложение. Вот когда пригодится плагин Hibernate Tools для Eclipse – он необходим для проектов Hibernate.
- Вопросы на собеседовании по Hibernate Хорошее знание Hibernate является плюсом для собеседований на базе Java, поэтому я написал этот пост. Он содержит большинство важных вопросов, связанных с фреймворком Hibernate, с подробными ответами. Вы должны изучить их перед собеседованием, чтобы освежить свои знания.
Учебник Hibernate – Исправление Общих Ошибок
- Как настроить hibernate.cfg.xml для работы в автономном режиме
- org.hibernate.AnnotationException: Не указан идентификатор для сущности Класс
- org.hibernate.HibernateException: get недействителен без активной транзакции
- org.hibernate.HibernateException: Не настроен текущий контекст сессии
- Программа Hibernate не завершается
- Доступ к DialectResolutionInfo не может быть нулевым, когда ‘hibernate.dialect’ не установлен
Source:
https://www.digitalocean.com/community/tutorials/hibernate-tutorial