Перейти к основному содержимому

Изучите JPA и Hibernate

· 2 мин. чтения

Задача: Наибольшая подстрока без повторений

Для заданной строки s, найдите длину наибольшей подстроки без повторяющихся символов. Подстрока — это непрерывная непустая последовательность символов внутри строки...

ANDROMEDA 42

Объектно-реляционное отображение (ORM) — это процесс преобразования объектов Java в таблицы базы данных. Другими словами, это позволяет нам взаимодействовать с реляционной базой данных без использования SQL. Java Persistence API (JPA) — это спецификация, определяющая, как сохранять данные в приложениях Java. Основное внимание в JPA уделяется уровню ORM.

Hibernate — одна из самых популярных используемых сегодня сред Java ORM. Его первый релиз состоялся почти двадцать лет назад, и до сих пор он пользуется отличной поддержкой сообщества и регулярными выпусками. Кроме того, Hibernate является стандартной реализацией спецификации JPA с несколькими дополнительными функциями, специфичными для Hibernate. Давайте рассмотрим некоторые основные функции JPA и Hibernate.

./6fa0ab2c3dc26978c581de4eb8ecd389.png

Определение объектов

  • Определение объектов JPA
  • Жизненный цикл объекта Hibernate
  • События жизненного цикла сущности JPA
  • Значения столбца по умолчанию в JPA
  • JPA @Basic Аннотация
  • Сопоставление имен классов сущностей с именами таблиц SQL с помощью JPA
  • Разница между @Size, @Length и @Column (длина = значение)
  • Равенство юридических лиц JPA
  • JPA @Embedded и @Embeddable
  • Преобразователи атрибутов JPA
  • Hibernate @NotNull против @Column (nullable = false)
  • Определение уникальных ограничений в JPA
  • Сущности JPA и сериализуемый интерфейс

./d3ecf4786a3a577cbb6c494848defd39.png

Отношения сущностей

  • Отношения «один к одному» в JPA
  • Отношения «многие ко многим» в JPA
  • Объяснение аннотации @JoinColumn
  • Разница между @JoinColumn и mappedBy
  • Сопоставление одного объекта с несколькими таблицами в JPA
  • Обзор каскадных типов JPA/Hibernate
  • Hibernate @WhereJoinTable Аннотация
  • Отображение наследования в спящем режиме
  • Учебное пособие по аннотациям Hibernate One to Many

./5b90d3d93602ced5597ebdcdccbe4853.png

Идентификаторы

  • Обзор идентификаторов в Hibernate/JPA
  • Составные первичные ключи в JPA
  • Когда JPA устанавливает первичный ключ

./8bdda40237a6c8ab51dc31e72dc8cbaa.png

Операции чтения

  • Типы запросов JPA
  • Использование параметров запроса JPA
  • Создание запроса JPA между несвязанными объектами
  • Работа с коллекциями ленивых элементов в JPA
  • Типы соединения JPA
  • FetchMode в спящем режиме
  • Спящий именованный запрос

./bfb4088800c75466f74bdf8955bb4dad.png

Критерии запроса

  • Объединение предикатов JPA и/или критериев
  • Criteria API — пример IN-выражений
  • Запросы критериев JPA

./5393b9f8826bfad1015232cde1d2018a.png

Пагинация и сортировка

  • Сортировка с помощью JPA
  • Пагинация JPA
  • Спящий режим
  • Запросы критериев JPA

./b70bf004e4a92bbd60830bfc7c6345fc.png

Результаты запроса

  • Руководство по SqlResultSetMapping
  • Настройка результатов запросов JPA с функциями агрегирования

./a96ae9339860573e9b6de20c01a6cc4e.png

Операции записи

  • Оператор INSERT в JPA
  • Пакетная вставка/обновление с помощью Hibernate/JPA
  • Удаление объектов с помощью Hibernate
  • Hibernate: сохранить, сохранить, обновить, объединить, saveOrUpdate