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

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

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

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

1. Обзор

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

2. Что такое каскадирование?

Отношения сущностей часто зависят от существования другой сущности, например, отношения ЛицоАдрес . Без Person сущность Address не имеет собственного значения. Когда мы удаляем сущность Person , наша сущность Address также должна быть удалена.

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

1. Обзор

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

Нам потребуется базовое понимание фреймворка Hibernate, поэтому ознакомьтесь с нашим руководством по Hibernate 5 с Spring для дополнительной информации.

2. Описание

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

1. Обзор

В этом руководстве мы рассмотрим создание языка запросов для REST API с использованием Spring Data JPA и Querydsl .

В первых двух статьях этой серии мы создали одинаковую функциональность поиска/фильтрации, используя JPA Criteria и Spring Data JPA Specifications.

Итак , зачем язык запросов? Потому что — для любого достаточно сложного API — поиска/фильтрации ваших ресурсов по очень простым полям просто недостаточно. Язык запросов является более гибким и позволяет отфильтровывать именно те ресурсы, которые вам нужны.

2. Конфигурация Querydsl

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

1. Обзор

В этой первой статье этой новой серии мы рассмотрим простой язык запросов для REST API . Мы будем хорошо использовать Spring для REST API и JPA 2 Criteria для аспектов сохраняемости.

Почему язык запросов? Потому что — для любого достаточно сложного API — поиска/фильтрации ваших ресурсов по очень простым полям просто недостаточно. Язык запросов является более гибким и позволяет вам отфильтровывать именно те ресурсы, которые вам нужны.

2. Объект пользователя

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

1. Обзор

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

Во- первых, мы начнем с CascadeType.REMOVE , который представляет собой способ удаления дочернего объекта или объектов, когда происходит удаление его родителя . Затем мы рассмотрим атрибут orphanRemoval , который был введен в JPA 2.0. Это дает нам возможность удалять потерянные объекты из базы данных .

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

2. Модель предметной области

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

1. Введение

При сохранении объектов Java в записях базы данных с использованием инфраструктуры объектно-реляционного сопоставления (ORM) мы часто хотим игнорировать определенные поля. Если платформа совместима с Java Persistence API (JPA), мы можем добавить аннотацию @Transient к этим полям.

В этом руководстве мы продемонстрируем правильное использование аннотации @Transient . Мы также рассмотрим его связь со встроенным в Java ключевым словом transient .

2. @Transient аннотация против переходного ключевого слова

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

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

1. Обзор

В этом руководстве мы рассмотрим обработку равенства с объектами JPA Entity.

2. Соображения

В общем, равенство просто означает, что два объекта одинаковы. Однако в Java мы можем изменить определение равенства, переопределив методы Object.equals() и Object.hashCode() . В конечном счете, Java позволяет нам определить, что значит быть равным. Но сначала нам нужно рассмотреть несколько вещей.

2.1. Коллекции

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

1. Введение

Spring Data JPA предоставляет множество способов работы с сущностями, включая методы запросов и пользовательские запросы JPQL . Но иногда нам нужен более программный подход, такой как Criteria API или QueryDSL .

Criteria API предлагает программный способ создания типизированных запросов , что помогает нам избежать синтаксических ошибок. Кроме того, когда мы используем его с Metamodel API, он выполняет проверки во время компиляции, чтобы подтвердить, что мы использовали правильные имена и типы полей.

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

В этом руководстве мы узнаем, как реализовать нашу пользовательскую логику DAO с помощью запросов критериев. Мы также покажем, как Spring помогает сократить шаблонный код.

2. Образец заявления

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

1. Обзор

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

В этом уроке мы узнаем, как решить эту проблему с помощью Criteria API .

2. Примеры объектов

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