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

258 записей с тегом "Persistence"

Посмотреть все теги

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

1. Обзор

В этом руководстве мы увидим, как мы можем построить запрос JPA между несвязанными объектами.

2. Зависимости Maven

Начнем с добавления необходимых зависимостей в наш pom.xml .

Прежде всего, нам нужно добавить зависимость для Java Persistence API :

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

1. Обзор

Версия JPA 2.2 официально представила поддержку Java 8 Date and Time API . До этого либо приходилось полагаться на проприетарное решение, либо приходилось использовать JPA Converter API.

В этом руководстве мы покажем, как сопоставлять различные типы даты и времени Java 8 . Особое внимание мы уделим тем, которые учитывают информацию о смещении.

2. Зависимости Maven

Прежде чем мы начнем, нам нужно включить API JPA 2.2 в путь к классам проекта. В проекте на основе Maven мы можем просто добавить его зависимость в наш файл pom.xml :

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

1. Введение

Метод getReference() класса EntityManager был частью спецификации JPA с первой версии. Однако этот метод сбивает с толку некоторых разработчиков, поскольку его поведение зависит от базового поставщика сохраняемости.

В этом руководстве мы собираемся объяснить, как использовать метод getReference() в Hibernate EntityManager .

2. Операции выборки EntityManager

Прежде всего, мы рассмотрим, как мы можем получить сущности по их первичным ключам. Без написания каких-либо запросов EntityManager предоставляет нам два основных метода для достижения этой цели.

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

1. Введение

В этой статье мы рассмотрим некоторые возможности динамического сопоставления Hibernate с аннотациями @Formula , @Where , @Filter и @Any .

Обратите внимание, что хотя Hibernate реализует спецификацию JPA, описанные здесь аннотации доступны только в Hibernate и не переносятся напрямую в другие реализации JPA.

2. Настройка проекта

Чтобы продемонстрировать функции, нам понадобится только библиотека hibernate-core и резервная база данных H2:

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

1. Обзор

LOB или Large OBject относится к типу данных переменной длины для хранения больших объектов.

Тип данных имеет два варианта:

  • CLOB — Большой объект символов будет хранить большие текстовые данные.
  • BLOB — большой двоичный объект для хранения двоичных данных, таких как изображения, аудио или видео.

В этом руководстве мы покажем, как мы можем использовать Hibernate ORM для сохранения больших объектов.

2. Настройка

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

1. Обзор

Агрегатные функции Hibernate вычисляют окончательный результат, используя значения свойств всех объектов, удовлетворяющих заданным критериям запроса.

Язык запросов Hibernate (HQL) поддерживает различные агрегатные функции — min(), max(), sum(), avg() и count() в операторе SELECT . Как и любое другое ключевое слово SQL, использование этих функций не зависит от регистра.

В этом кратком руководстве мы рассмотрим, как их использовать. Обратите внимание, что в приведенных ниже примерах мы используем либо примитивные типы, либо типы-оболочки для хранения результатов агрегатных функций. HQL поддерживает оба варианта, так что нужно выбирать, какой из них использовать.

2. Первоначальная настройка

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

1. Введение

В этом руководстве мы обсудим некоторые распространенные исключения, с которыми мы можем столкнуться при работе с Hibernate.

Мы рассмотрим их назначение и некоторые распространенные причины. Кроме того, мы рассмотрим их решения.

2. Обзор исключений гибернации

Многие условия могут вызывать исключения при использовании Hibernate. Это могут быть ошибки сопоставления, проблемы с инфраструктурой, ошибки SQL, нарушения целостности данных, проблемы сеанса и ошибки транзакций.

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

1. Введение

При работе с Hibernate мы можем использовать именованные параметры для безопасной передачи данных в SQL-запрос. Мы присваиваем значения параметрам запроса во время выполнения, чтобы сделать их динамическими. Что еще более важно, это помогает предотвратить атаки путем внедрения кода SQL.

Однако мы можем столкнуться с ошибками при работе с именованными параметрами. Двумя наиболее распространенными из автономной библиотеки Hibernate и реализации Hibernate JPA, соответственно, являются:

  • Не все именованные параметры установлены
  • Именованный параметр не привязан

Хотя сообщения об ошибках могут различаться между vanilla Hibernate и его реализацией JPA, основная причина одна и та же.

В этом уроке мы рассмотрим, что вызывает эти ошибки и как их избежать . Попутно мы покажем, как использовать именованные параметры с автономной библиотекой Hibernate.

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

1. Обзор

Основным недостатком разбросанных по объектам доступа к данным HQL и SQL является то, что код становится нечитаемым. Следовательно, может иметь смысл сгруппировать все HQL и SQL в одном месте и использовать только их ссылку в фактическом коде доступа к данным. К счастью, Hibernate позволяет нам делать это с помощью именованных запросов.

Именованный запрос — это статически определенный запрос с предопределенной неизменной строкой запроса. Они проверяются при создании фабрики сеансов, что приводит к быстрому сбою приложения в случае ошибки.

В этой статье мы увидим, как определять и использовать именованные запросы Hibernate с помощью аннотаций @NamedQuery и @NamedNativeQuery .

2. Сущность

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

1. Введение

В этом кратком руководстве мы рассмотрим кеш планов запросов, предоставляемый Hibernate, и его влияние на производительность.

2. Кэш плана запроса

Каждый запрос JPQL или запрос Criteria анализируется в абстрактном синтаксическом дереве (AST) перед выполнением, чтобы Hibernate мог сгенерировать инструкцию SQL. Поскольку компиляция запросов требует времени, Hibernate предоставляет QueryPlanCache для повышения производительности.

Для нативных запросов Hibernate извлекает информацию об именованных параметрах и типе возврата запроса и сохраняет ее в ParameterMetadata .