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

83 записи с тегом "Hibernate"

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

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

1. Обзор

Когда мы используем Spring Data JPA с Hibernate, мы также можем использовать дополнительные функции Hibernate. @DynamicUpdate — одна из таких функций.

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

В этой статье мы рассмотрим аннотацию @DynamicUpdate с помощью примера Spring Data JPA .

2. JPA @Entity

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

1. Обзор

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

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

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

./3e074f86df4e5666a86df76786131bb8.png

2. Аудит с помощью JPA

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

1. Введение

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

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

2. Описание

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

1. Обзор

В этом руководстве мы узнаем, как использовать Spring Boot с Hibernate.

Мы создадим простое приложение Spring Boot и продемонстрируем, как легко его интегрировать с Hibernate.

2. Начальная загрузка приложения

Мы будем использовать Spring Initializr для начальной загрузки нашего приложения Spring Boot. В этом примере мы будем использовать только необходимые конфигурации и зависимости для интеграции Hibernate, добавив зависимости Web , JPA и H2 . Мы объясним эти зависимости в следующем разделе.

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

1. Обзор

В этой статье мы обсудим транзакции только для чтения. Мы поговорим об их назначении и способах их использования, а также проверим некоторые их нюансы, связанные с производительностью и оптимизацией. Для простоты мы сосредоточимся на движке MySQL InnoDB . Но имейте в виду, что некоторая описанная информация может меняться в зависимости от базы данных/механизма хранения.

2. Что такое транзакция?

Транзакция — это атомарная операция, состоящая из одного или нескольких операторов . Это атомарно, потому что все операторы в этой операции либо завершаются успешно (фиксируются), либо терпят неудачу (откатываются), что означает все или ничего. Буква «A» в свойствах ACID представляет атомарность транзакций.

Еще одна важная вещь, которую нужно понять, это то, что все операторы в движке InnoDB становятся транзакциями, если не явно, то неявно . Такую концепцию становится намного сложнее понять, когда мы добавим параллелизм к уравнению. Затем нам нужно прояснить другое свойство ACID, «I» изоляции.

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

1. Введение

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

JPA и Hibernate поддерживают разные стратегии, которые сопоставляют иерархию наследования с различными моделями таблиц. Давайте взглянем на главу моей новой книги «Советы по Hibernate — более 70 решений распространенных проблем Hibernate», в которой я объясняю стратегию SingleTable . Он сопоставляет все классы иерархии наследования с одной и той же таблицей базы данных.

Я объясняю другие стратегии сопоставления наследования в Hibernate в моей книге Hibernate Tips . Это кулинарная книга с более чем 70 готовыми к использованию рецептами по таким темам, как базовые и расширенные сопоставления, ведение журналов, поддержка Java 8, кэширование, а также статически и динамически определяемые запросы. Вы можете приобрести его на этой неделе на Amazon по специальной стартовой цене всего в 2,99 доллара.


2. Советы по Hibernate — как сопоставить иерархию наследования с одной таблицей

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

1. Обзор

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

Мы будем основываться на классе Abstract DAO, который мы видели в нашей предыдущей статье о Spring и Hibernate, и добавим поддержку дженериков.


2. Hibernate и JPA DAO

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

1. Обзор

В этом руководстве мы увидим, как использовать запросы JPA и Hibernate, а также разницу между запросами Criteria, JPQL и HQL. Критериальные запросы позволяют пользователю писать запросы без использования необработанного SQL. Наряду с запросами Criteria мы рассмотрим написание именованных запросов Hibernate и способы использования аннотации @Query в Spring Data JPA.

Прежде чем мы углубимся в это, мы должны отметить, что Hibernate Criteria API устарел, начиная с Hibernate 5.2. Поэтому в наших примерах мы будем использовать JPA Criteria API , поскольку это новый и предпочтительный инструмент для написания запросов Criteria. Итак, с этого момента мы будем называть его просто Criteria API.

2. Критериальные запросы

Criteria API помогает создавать объект запроса Criteria, применяя к нему различные фильтры и логические условия. Это альтернативный способ манипулирования объектами и возврата нужных данных из таблицы СУБД.

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

1. Введение

В этом руководстве мы обсудим определение уникальных ограничений с помощью JPA и Hibernate .

Сначала мы рассмотрим уникальные ограничения и то, чем они отличаются от ограничений первичного ключа.

Затем мы рассмотрим важные аннотации JPA, @ Column(unique=true) и @UniqueConstraint. Мы реализуем их, чтобы определить уникальные ограничения для одного столбца и нескольких столбцов.

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

2. Уникальные ограничения

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

1. Обзор

Hibernate упрощает обработку данных между SQL и JDBC, сопоставляя объектно-ориентированную модель в Java с реляционной моделью в базах данных. Хотя сопоставление базовых классов Java встроено в Hibernate, сопоставление пользовательских типов часто бывает сложным.

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

2. Типы отображения гибернации

Hibernate использует типы отображения для преобразования объектов Java в запросы SQL для хранения данных. Точно так же он использует типы сопоставления для преобразования SQL ResultSet в объекты Java при извлечении данных.