Глосарій 2.4
🏗️ Основні поняття (Core)
- Spring Data JPA — частина екосистеми Spring, що полегшує роботу з реляційними БД, зменшуючи кількість шаблонного коду.
- Hibernate — найпопулярніша реалізація ORM, яка використовується в Spring Boot за замовчуванням.
- ORM (Object-Relational Mapping) — технологія, що зв'язує таблиці БД з об'єктами (класами) у коді Java.
- Entity (Сутність) — звичайний Java-клас, який відображає структуру таблиці в базі даних (позначається
@Entity). - Repository — інтерфейс для виконання операцій над даними (пошук, збереження, видалення).
- DataSource — об'єкт, що містить параметри підключення до бази даних (URL, логін, пароль).
📝 Анотації сутностей (JPA Annotations)
- @Id — визначає поле, яке є первинним ключем (Primary Key).
- @GeneratedValue — вказує стратегію автоматичного створення ID (наприклад,
IDENTITYабоSEQUENCE). - @Column — налаштовує відповідність поля властивості стовпцю таблиці (ім'я, довжина, обов'язковість).
- @Table — дозволяє вказати назву таблиці в БД, якщо вона відрізняється від імені класу.
- @Transient — позначає поле, яке не потрібно зберігати в базу даних.
🤝 Зв'язки між таблицями (Associations)
- OneToOne — зв'язок «один до одного» (наприклад, Користувач та його Профіль).
- OneToMany / ManyToOne — зв'язок «один до багатьох» (один Департамент — багато Співробітників).
- ManyToMany — зв'язок «багато до багатьох» (багато Студентів — багато Курсів), зазвичай створює проміжну таблицю.
- FetchType.LAZY — ліниве завантаження; дані завантажуються з БД тільки в момент звернення до них.
- FetchType.EAGER — негайне завантаження; дані завантажуються разом з основним об'єктом.
- CascadeType — визначає, чи мають операції (збереження, видалення) поширюватися на пов'язані об'єкти.
🛠️ Робота з даними та запитами
- Query Methods — метод в репозиторії, назва якого генерує SQL-запит автоматично (наприклад,
findByEmail). - @Query — анотація для написання запитів вручну на мові JPQL або Native SQL.
- JPQL (Java Persistence Query Language) — об'єктно-орієнтована мова запитів, схожа на SQL, але працює з об'єктами, а не таблицями.
- Native Query — звичайний SQL-запит, специфічний для конкретної БД (PostgreSQL, MySQL тощо).
- Paging & Sorting — механізми Spring Data для розбиття результатів на сторінки та їхнього сортування.
⚡ Транзакції та стани
- @Transactional — анотація, яка гарантує, що набір операцій виконається повністю або не виконається зовсім (Rollback у разі помилки).
- Persistence Context — «кеш першого рівня», де Hibernate зберігає об'єкти під час поточної транзакції.
- Dirty Checking — механізм Hibernate, який автоматично оновлює дані в БД, якщо об'єкт @Entity був змінений у коді.
- Liquibase / Flyway — інструменти для міграції баз даних (керування версіями структури БД).
- H2 Database — швидка вбудована база даних у пам'яті (In-memory), яка часто використовується для тестів.
Остання зміна: середа 20 травня 2026 12:13 PM