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

93 записи с тегом "JPA"

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

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

1. Обзор

JPA 2.1 представила функцию Entity Graph как более сложный метод работы с нагрузкой на производительность.

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

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

2. Что пытается решить Entity Graph

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

1. Обзор

Спецификация JPA предоставляет две разные стратегии выборки: нетерпеливую и ленивую. Хотя ленивый подход помогает избежать ненужной загрузки данных, которые нам не нужны, иногда нам нужно прочитать данные, изначально не загруженные в закрытом Persistence Context . Более того, доступ к коллекциям ленивых элементов в закрытом контексте сохранения является распространенной проблемой.

В этом руководстве мы сосредоточимся на том, как загружать данные из коллекций отложенных элементов. Мы рассмотрим три различных решения: одно с использованием языка запросов JPA, другое с использованием графов сущностей и последнее с распространением транзакций.

2. Проблема сбора элементов

По умолчанию JPA использует стратегию отложенной выборки в ассоциациях типа @ElementCollection . Таким образом, любой доступ к коллекции в закрытом Persistence Context приведет к исключению.

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

1. Обзор

В этом руководстве мы увидим, как можно сопоставить одну сущность, содержащую встроенные свойства, с одной таблицей базы данных.

Итак, для этой цели мы будем использовать аннотации @Embeddable и @Embedded , предоставляемые Java Persistence API (JPA) .

2. Контекст модели данных

Прежде всего, давайте определим таблицу с именем company .

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

1. Введение

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

Мы начнем с аннотирования методов самой сущности, а затем перейдем к использованию прослушивателя сущности.

2. События жизненного цикла сущности JPA

JPA определяет семь необязательных событий жизненного цикла, которые вызываются:

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

1. Обзор

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

Для получения дополнительной информации о Hibernate в целом ознакомьтесь с нашим исчерпывающим руководством по JPA с Spring и введением в Spring Data с JPA для более глубокого погружения в эту тему.

2. Сохраняющиеся объекты в JPA

В JPA каждый объект, переходящий из переходного состояния в управляемое, автоматически обрабатывается EntityManager .

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

1. Обзор

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

В этом руководстве мы сосредоточимся на том, как преобразовать результаты этих запросов в объект. Мы рассмотрим два разных решения — одно с использованием спецификации JPA и POJO, а другое с использованием Spring Data Projection.

2. Запросы JPA и проблема агрегации

Запросы JPA обычно выдают результаты в виде экземпляров сопоставленного объекта. Однако запросы с функциями агрегирования обычно возвращают результат в виде Object[] .

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

1. Обзор

Тегирование — это стандартный шаблон проектирования, который позволяет нам классифицировать и фильтровать элементы в нашей модели данных.

В этой статье мы реализуем тегирование с использованием Spring и JPA. Мы будем использовать Spring Data для выполнения задачи. Кроме того, эта реализация будет полезна, если вы хотите использовать Hibernate.

Это вторая статья из серии о реализации тегов. Чтобы узнать, как это реализовать с помощью Elasticsearch, перейдите сюда .

2. Добавление тегов

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

1. Обзор

Тегирование — это шаблон проектирования, который позволяет нам выполнять расширенную фильтрацию и сортировку наших данных. Эта статья является продолжением Простой реализации тегов с помощью JPA .

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

2. Одобренные теги

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

1. Введение

При моделировании реальной системы или процесса репозитории в стиле доменно-ориентированного проектирования (DDD) являются хорошим вариантом. Именно для этой цели мы можем использовать Spring Data JPA в качестве уровня абстракции доступа к данным.

Если вы новичок в этой концепции, ознакомьтесь с этим вводным руководством , которое поможет вам освоиться.

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

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

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

1. Обзор

Spring Data значительно упрощает процесс работы с сущностями, просто определяя интерфейсы репозитория. Они поставляются с набором предопределенных методов и позволяют добавлять пользовательские методы в каждый интерфейс.

Однако, если мы хотим добавить пользовательский метод, доступный во всех репозиториях, процесс немного усложняется. Итак, это то, что мы будем исследовать здесь с помощью Spring Data JPA.

Для получения дополнительной информации о настройке и использовании Spring Data JPA ознакомьтесь с нашими предыдущими статьями: Guide to Hibernate with Spring 4 и Introduction to Spring Data JPA .

2. Определение интерфейса базового репозитория