31. Spring Data JPA и Spring Boot 3 (Java Enterprise - полный курс)

preview_player
Показать описание

Разберемся как работать с интеграционными тестами в spring boot

00:00 Зачем нужен Spring Data JPA?
01:07 Подключаем базу данных к проекту
03:12 Добавляем Spring Data JPA starter
03:40 Автоконфигурация - HibernateJpaAutoConfiguration
04:10 Настраиваем БД в приложении
06:00 Накатываем скрипты для создания таблиц и данных в БД
08:24 Создаем объектную модель для БД
15:30 Проверяем работу приложения
17:13 Создаем CompanyRepositoryTest
18:30 findById()
20:13 @Transaction
21:40 Isolation в @Transaction
27:55 save() - @rollback и @commit
29:00 Транзакции в service layer
29:59 REPOSITORY
34:18 PartTreeJpaQuery
40:05 NamedQuery
42:40 Query
43:38 Переписываем UserRepository - практика
47:20 NativeQuery
47:52 @Modifying
51:27 Проекции
59:39 Динамическая сортировка
1:01:38 Пагинация (Pagination)
1:04:28 Slice (Pagination)
1:06:08 Page (Pagination)
1:07:36 Итог
Рекомендации по теме
Комментарии
Автор

Уникальный материал, у которого преступно мало просмотров! Автору низкий поклон

GenesizANT
Автор

Спасибо за такой детальный метериал! Давно хотел немного детальнее узнать о реализации Jpa.

SleepyMracle
Автор

И правда, классный материал, но столкнулся с проблемой создания базы, а точнее заполнении её данными) Поскольку никаких ссылок на материал в видосе не прикреплено (либо я не нашел), то пришлось базу по схеме создавать - это ок и прям норм практика. Но вот заполнять рандомными данными так муторно и накладно конечно, хотелось бы ссылочку на data.sql. Но главная проблема в том, что когда я буду получать не такие результаты запросов, как у автора, я каждый раз буду тратить время на сопоставление своих данных с авторскими вместо прямого сравнения результатов :(

СеменРосляков-пг
Автор

Благодарю за материал, прошу подшить файлики с содержимым init.sql data.sql -
init переписать можно, вы его быстро просматриваете, а data - нет .

ЭдуардВолков-кл
Автор

Зачем писать отдельный класс для Set и Get ID? Если можно использовать аннотации @Setter/Getter над классом?( я не докапываюсь, просто вопрос)

inavto
Автор

Автор чертовски крут, но можно пожалуйста ссылочку на репозиторий 🫠

Sour_producer
Автор

я заморочился и вытащил что смог, может кто дополнит

CREATE TABLE IF NOT EXISTS company
(
id SERIAL PRIMARY KEY,
name VARCHAR(64) NOT NULL UNIQUE
);

CREATE TABLE IF NOT EXISTS company_locales
(
company_id INT REFERENCES company (id),
lang VARCHAR(2),
description VARCHAR(255) NOT NULL,
PRIMARY KEY (company_id, lang)
);

CREATE TABLE IF NOT EXISTS users
(
id BIGSERIAL PRIMARY KEY,
username VARCHAR(64) NOT NULL UNIQUE,
birth_date DATE,
firstname VARCHAR(64),
lastname VARCHAR(64),
role VARCHAR(32),
company_id INT REFERENCES company (id)
);

CREATE TABLE IF NOT EXISTS payment
(
id BIGSERIAL PRIMARY KEY,
amount INT NOT NULL,
receiver_id BIGINT NOT NULL REFERENCES users (id)
);

CREATE TABLE IF NOT EXISTS chat
(
id BIGSERIAL PRIMARY KEY,
name VARCHAR(64) NOT NULL UNIQUE
);

CREATE TABLE IF NOT EXISTS users_chat
(
id BIGSERIAL PRIMARY KEY,
user_id BIGINT NOT NULL REFERENCES users (id),
chat_id BIGINT NOT NULL REFERENCES chat (id),
UNIQUE (user_id, chat_id)
);

ЭдуардВолков-кл