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

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

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

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

1. Обзор

В этом руководстве мы рассмотрим некоторые вспомогательные инструменты для JPA. Мы сосредоточимся на подключаемых модулях, доступных для двух самых популярных IDE: IntelliJ IDEA и Eclipse .

2. Поддержка JPA в IntelliJ IDEA и Eclipse

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

Обычно мы работаем не только с сущностями JPA. В дополнение к чистому коду, связанному с ORM, нам также могут понадобиться такие вещи, как система управления версиями базы данных, оптимизация запросов SQL/JPQL/HQL, интеграция с контейнерами IoC и т. д. Вот где плагины становятся очень полезными. Они могут поддерживать обратный инжиниринг базы данных, генерацию схемы, генерацию сценариев миграции или создание каркасов репозиториев Spring Data JPA.

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

1. Введение

В этом руководстве мы узнаем о составных первичных ключах и соответствующих аннотациях в JPA.

2. Составные первичные ключи

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

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

1. Обзор

В этом руководстве мы рассмотрим различные типы соединений, поддерживаемые JPA .

Для этой цели мы будем использовать JPQL, язык запросов для JPA .

2. Образец модели данных

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

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

1. Введение

В этом руководстве мы обсудим, как сочетаются сущности JPA и интерфейс Java Serializable . Во-первых, мы рассмотрим интерфейс java.io.Serializable и зачем он нам нужен. После этого мы рассмотрим спецификацию JPA и Hibernate как наиболее популярную ее реализацию.

2. Что такое сериализуемый интерфейс?

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

Сериализация объектов — это процесс преобразования объектов Java в потоки байтов . Затем мы можем передавать эти потоки байтов по сети или хранить их в постоянной памяти. Десериализация — это обратный процесс , когда мы берем потоки байтов и преобразовываем их обратно в объекты Java. Чтобы разрешить сериализацию (или десериализацию) объектов, класс должен реализовать интерфейс Serializable . В противном случае мы столкнемся с java.io.NotSerializableException . Сериализация широко используется в таких технологиях, как RMI, JPA и EJB .

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

1. Введение

Физическое удаление данных из таблицы является обычным требованием при взаимодействии с базами данных. Но иногда есть бизнес-требования не удалять данные из базы данных без возможности восстановления. Эти требования, например, необходимость отслеживания или аудита истории данных, а также связанные с целостностью ссылок.

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

В этом руководстве мы узнаем о мягком удалении и о том, как реализовать эту технику с помощью Spring JPA .

2. Что такое мягкое удаление?

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

1. Обзор

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

2. Настройка

Во-первых, давайте определим класс UserEntity , который мы будем использовать для всех примеров в этой статье:

@Table(name = "users")
@Entity
public class UserEntity {

@Id
private Long id;
private String name;
//Standard constructor, getters and setters.

}

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

1. Обзор

В этом кратком руководстве мы увидим, как вернуть несколько разных сущностей в JPA Query. ``

Сначала мы создадим простой пример кода, содержащий несколько разных сущностей. Затем мы объясним, как создать запрос JPA, который возвращает несколько разных сущностей. Наконец, мы покажем рабочий пример реализации Hibernate JPA.

2. Пример конфигурации

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

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

1. Введение

В этом руководстве мы обсудим определение индексов с помощью аннотации JPA @Index . На примерах мы узнаем, как определить наш первый индекс с помощью JPA и Hibernate. После этого мы собираемся изменить определение, показав дополнительные способы настройки индекса.

2. @Индексная аннотация

Давайте начнем с краткого обзора. Индекс базы данных — это структура данных, которая повышает скорость операций извлечения данных из таблицы за счет дополнительных операций записи и места для хранения. В основном это копия выбранных столбцов данных из одной таблицы. Мы должны создать индексы, чтобы повысить производительность на нашем уровне сохраняемости.

JPA позволяет нам добиться этого, определяя индексы из нашего кода с помощью @Index . Эта аннотация интерпретируется процессом генерации схемы, автоматически создавая артефакты. Обратите внимание, что нет необходимости указывать какой-либо индекс для наших сущностей.

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

1. Обзор

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

2. Атрибуты @AttributeOverride

Аннотация содержит два обязательных атрибута:

  • name – имя поля включенной сущности
  • столбец - определение столбца, которое переопределяет определение, определенное в исходном объекте.

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

1. Введение

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

2. Жизненный цикл сущности и генерация идентификатора

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

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