Руководство по Hibernate

В последнее время я написал много учебных материалов по Hibernate. Hibernate – один из лучших инструментов для объектно-реляционного отображения (ORM) на языке Java на текущем рынке. Этот пост похож на индекс всех статей по Hibernate и примеров. Вы можете пройти по этим учебникам по Hibernate последовательно, чтобы изучить Hibernate с нуля. Вероятно, я буду добавлять ещё учебных материалов по Hibernate в этот список, поэтому вам, возможно, стоит добавить его в закладки и время от времени проверять.

Учебник по Hibernate

  1. Учебник по Hibernate для начинающих Hibernate поддерживает аннотации JPA и очень гибок. Мы можем настраивать его с использованием XML, файлов свойств, а также программным образом. Этот учебник – отличный способ начать работу с фреймворком Hibernate. В нем рассматриваются различные конфигурации, необходимые для Hibernate, и предоставляются примеры простого отображения на основе XML, а также отображения на основе аннотаций JPA. Вы также узнаете различные способы инициализации SessionFactory и важные компоненты фреймворка Hibernate.
  2. Сопоставление один к одному Hibernate В большинстве случаев таблицы базы данных связаны между собой. Существует много форм ассоциации – один к одному, один ко многим и многие ко многим на широком уровне, которые могут быть дополнительно разделены на однонаправленные и двунаправленные отображения. В этом руководстве мы рассмотрим реализацию сопоставления один к одному Hibernate с использованием конфигурации XML, а также с использованием конфигурации аннотаций JPA.
  3. Сопоставление один ко многим Hibernate Простыми словами, сопоставление один ко многим означает, что одна строка в таблице может быть сопоставлена с несколькими строками в другой таблице. Например, представьте систему корзины, где у нас есть еще одна таблица для товаров. В корзине может быть несколько товаров, так что здесь у нас сопоставление один ко многим. В этом руководстве вы узнаете, как реализовать сопоставление один ко многим с использованием конфигурации на основе XML, а затем с использованием аннотаций Hibernate.
  4. Сопоставление многие ко многим Hibernate Сопоставление многие ко многим обычно реализуется в базе данных с использованием таблицы соединений, например, у нас может быть таблица Cart и Item, а также таблица Cart_Items для сопоставления многие ко многим. У каждой корзины может быть несколько товаров, и каждый товар может быть частью нескольких корзин, поэтому здесь у нас сопоставление многие ко многим. Это руководство объясняет о многие ко многим в Hibernate как однонаправленное, так и двунаправленное отображение.
  5. Язык запросов Hibernate (HQL) Фреймворк Hibernate поставляется с мощным объектно-ориентированным языком запросов – Hibernate Query Language (HQL). Он очень похож на SQL, за исключением того, что вместо имен таблиц мы используем объекты, что делает его ближе к объектно-ориентированному программированию. В этой статье объясняется HQL и различные клозы, поддерживаемые языком HQL.
  6. Нативные SQL-запросы Hibernate Hibernate предоставляет возможность выполнения нативных SQL-запросов с помощью объекта SQLQuery. Это очень удобно, когда мы хотим выполнить запросы, специфичные для базы данных, которые не поддерживаются API Hibernate, такие как подсказки запросов или ключевое слово CONNECT в базе данных Oracle.
  7. Именованные запросы Hibernate Если есть много HQL или нативных SQL-запросов, то это вызовет беспорядок в коде, потому что все запросы будут разбросаны по всему проекту. Поэтому Hibernate предоставляет именованный запрос, который мы можем определить в центральном месте и использовать его в любом месте кода. Мы можем создавать именованные запросы как для HQL, так и для нативного SQL. Именованные запросы Hibernate могут быть определены в файлах маппинга Hibernate с использованием элемента query или sql-query или с помощью аннотаций JPA @NamedQuery и @NamedNativeQuery.
  8. Hibernate Criteria Hibernate предоставляет API Criteria, которое более ориентировано на объекты для выполнения запросов к базе данных и получения результатов. Мы не можем использовать Criteria для выполнения запросов на обновление или удаление или любых операторов DDL. Он используется только для извлечения результатов из базы данных с использованием более объектно-ориентированного подхода. Некоторые общие применения API Criteria включают проекцию, которую мы можем использовать для агрегирующих функций, таких как sum(), min(), max() и т. д., ProjectionList для извлечения только выбранных столбцов, упорядочивание результатов и т. д.
  9. Hibernate First Level Cache Кэш Hibernate может быть очень полезен для повышения производительности приложения при правильном использовании. Идея кэша заключается в уменьшении количества запросов к базе данных, тем самым уменьшая время обработки приложения. Первый уровень кэша Hibernate связан с объектом Session. Первый уровень кэша Hibernate включен по умолчанию, и нет способа его отключить. Тем не менее Hibernate предоставляет методы, с помощью которых мы можем удалить выбранные объекты из кэша или полностью очистить кэш. Любой объект, кэшированный в сеансе, не будет виден другим сеансам, и при закрытии сеанса все кэшированные объекты также будут потеряны.
  10. Кэш второго уровня Hibernate с EHCache Поставщики кэша второго уровня Hibernate включают EHCache и Infinispan, но EHCache более популярен, потому что его легко интегрировать и он поддерживает все стратегии кэширования Hibernate. Этот учебник предоставляет полный пример интеграции EHCache с фреймворком Hibernate.
  11. Получение Hibernate по сравнению с загрузкой Сессия Hibernate предоставляет различные методы для извлечения данных из базы данных. Два из них – get() и load(). Существует также множество перегруженных методов для них, которые мы можем использовать в различных ситуациях. На первый взгляд оба метода get() и load() кажутся похожими, потому что оба извлекают данные из базы данных. Однако между ними есть несколько различий, этот учебник объясняет их на примере кода.
  12. Сохранение Hibernate по сравнению с настойчивостью Сессия Hibernate – это интерфейс между приложением на Java и фреймворком Hibernate. Этот учебник объясняет об основных методах сессии для сохранения и обновления данных в таблицах – save, saveOrUpdate, persist, update и merge.
  13. Открытие сеанса Hibernate vs getCurrentSession Класс Hibernate SessionFactory – это фабрика, через которую мы получаем сеансы и выполняем операции с базой данных. Hibernate SessionFactory предоставляет три метода, с помощью которых мы можем получить объект Session – getCurrentSession(), openSession() и openStatelessSession(). В этом учебнике объясняется каждый из них с примером кода.
  14. Интеграция Hibernate с log4j Hibernate 4 использует журналирование JBoss, но log4j является наиболее популярным фреймворком журналирования. Краткое руководство по интеграции журналирования log4j с фреймворком Hibernate.
  15. Пример Hibernate Tomcat JNDI DataSource В большинстве случаев фреймворк Hibernate используется в веб-приложениях, работающих в Tomcat или любом другом контейнере сервлетов. Hibernate может использовать DataSource, определенный как ресурс JNDI в контейнере, это предпочтительный подход, позволяющий контейнеру сервлетов обрабатывать соединения с базой данных с использованием пула соединений.
  16. Интеграция Spring Hibernate Spring – один из самых используемых фреймворков Java EE, а Hibernate – наиболее популярный фреймворк ORM. Поэтому комбинация Spring Hibernate часто используется в корпоративных приложениях. В этом учебнике используется Spring 4 для его интеграции с Hibernate 3, а затем обновляется тот же проект для использования Hibernate 4.
  17. Пример Spring MVC Hibernate Этот учебник продвигается вперед и объясняет, как интегрировать Hibernate с Spring MVC и использовать управление транзакциями Spring декларативным образом, а не использовать управление транзакциями Hibernate.
  18. Пример интеграции Struts2 Hibernate Этот учебник объясняет общий способ интеграции Hibernate с любым веб-приложением с использованием ServletContextLister, пример использует Struts2 с Hibernate, но интеграция за кулисами выполняется только с помощью технологии Servlet. Это отличается от интеграции Spring, потому что Struts2 не предоставляет встроенной поддержки для интеграции с Hibernate.
  19. Пример валидатора Hibernate Валидация данных – это неотъемлемая часть любого приложения. Это поперечная задача, которая происходит на уровне представления, уровне бизнеса, а также на уровне постоянства. Вот почему JSR-303 предоставляет стандарт на основе аннотаций для применения валидации для свойств бинов Java. Hibernate Validator предоставляет поддержку для JSR-303, и этот учебник показывает его использование на простом примере.
  20. Плагин Hibernate Tools для Eclipse Если вы работали над проектами Hibernate, вам должны быть знакомы многие свойства, которые нам нужны для отображения Hibernate и файла конфигурации. Без подходящего инструмента, который может помочь нам в поиске правильных свойств, будет очень сложно правильно настроить наше приложение. Вот когда пригодится плагин Hibernate Tools для Eclipse – он необходим для проектов Hibernate.
  21. Вопросы на собеседовании по Hibernate Хорошее знание Hibernate является плюсом для собеседований на базе Java, поэтому я написал этот пост. Он содержит большинство важных вопросов, связанных с фреймворком Hibernate, с подробными ответами. Вы должны изучить их перед собеседованием, чтобы освежить свои знания.

Учебник Hibernate – Исправление Общих Ошибок

  1. Как настроить hibernate.cfg.xml для работы в автономном режиме
  2. org.hibernate.AnnotationException: Не указан идентификатор для сущности Класс
  3. org.hibernate.HibernateException: get недействителен без активной транзакции
  4. org.hibernate.HibernateException: Не настроен текущий контекст сессии
  5. Программа Hibernate не завершается
  6. Доступ к DialectResolutionInfo не может быть нулевым, когда ‘hibernate.dialect’ не установлен

Source:
https://www.digitalocean.com/community/tutorials/hibernate-tutorial