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

54 записи с тегом "Spring Persistence"

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

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

1. Введение

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

2. Кластерная служба

Чтобы удовлетворить ограничение, согласно которому в JVM может быть активна только одна среда CouchbaseEnvironment , мы начинаем с написания службы, которая подключается к кластеру Couchbase и предоставляет доступ к сегментам данных без прямого доступа к экземплярам Cluster или CouchbaseEnvironment .

2.1. Интерфейс

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

1. Обзор

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

Когда мы используем MongoDB в качестве базы данных для приложения Spring Boot, мы не можем использовать аннотацию @GeneratedValue в наших моделях, поскольку она недоступна. Следовательно, нам нужен метод для получения такого же эффекта, как если бы мы использовали JPA и базу данных SQL.

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

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

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

1. Обзор

В этой статье будет показано, как реализовать DAO с помощью Spring и Hibernate . Чтобы узнать об основной конфигурации Hibernate, ознакомьтесь с предыдущей статьей Hibernate 5 with Spring .

2. Больше никаких весенних шаблонов

Начиная с Spring 3.0 и Hibernate 3.0.1, Spring HibernateTemplate больше не требуется для управления сеансом Hibernate. Теперь можно использовать контекстные сеансысеансы, управляемые непосредственно Hibernate и активные на протяжении всей транзакции.

Как следствие, сейчас рекомендуется использовать Hibernate API напрямую, а не HibernateTemplate. Это эффективно полностью отделит реализацию уровня DAO от Spring.

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

1. Введение

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

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

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

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

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

1. Обзор

Этот учебник является продолжением статьи « Введение в jOOQ с помощью Spring », в которой рассматриваются способы использования jOOQ в приложении Spring Boot.

Если вы еще не ознакомились с этим учебным пособием, просмотрите его и следуйте инструкциям в разделе 2, посвященном зависимостям Maven, и в разделе 3, посвященном генерации кода. Это создаст исходный код для классов Java, представляющих таблицы в образце базы данных, включая Author , Book и AuthorBook .

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

В дополнение к зависимостям и подключаемым модулям, как в предыдущем руководстве, в файл Maven POM необходимо включить несколько других компонентов, чтобы jOOQ работал с Spring Boot.

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

1. Обзор

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

В демонстрационных целях мы будем использовать базу данных H2 в памяти.

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

Самый простой и быстрый способ создать наш пример проекта — использовать Spring Boot . Однако мы также покажем незагрузочный способ настройки.

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

1. Обзор

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

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

Чтобы упростить тестирование приложения, мы откажемся от дополнительной настройки, необходимой для MySQL, и вместо этого будем использовать базу данных H2 в памяти для запуска тестов JUnit.

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

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

1. Обзор

В этой статье мы обсудим, как загрузить Hibernate 5 с помощью Spring , используя конфигурацию Java и XML.

Эта статья посвящена Spring MVC. В нашей статье Spring Boot with Hibernate описывается, как использовать Hibernate в Spring Boot.

2. Весенняя интеграция

Начальная загрузка SessionFactory с помощью собственного API Hibernate немного сложна и потребует от нас немало строк кода (посмотрите официальную документацию , если вам действительно нужно это сделать).

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

1. Обзор

Аннотация Spring @Transactional предоставляет хороший декларативный API для обозначения границ транзакций.

За кулисами аспект заботится о создании и обслуживании транзакций, поскольку они определены в каждом экземпляре аннотации @Transactional . Такой подход позволяет легко отделить нашу основную бизнес -логику от сквозных задач, таких как управление транзакциями.

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

2. Проблемы в раю

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

1. Введение

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

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

2. Образец объекта

Чтобы подготовить почву для наших примеров, давайте создадим объект Car с двумя свойствами: model и power :