Для чого потрібне логування?
• «Чорна скринька» вашого застосунку (літака).
• Можна виводити події для будь-якого під'єднаного фреймворку.
• Якщо ви створюєте свою бібліотеку, обов'язково вмикайте виведення логів різних рівнів.
• У Hibernate:
▪ Виведення параметрів SQL-запитів.
▪ Перегляд подій Hibernate (наприклад, відкриття-закриття сесій).
▪ Та все інше.
Логування
• Під час створення будь-якого застосунку відразу налаштовуйте логування!
• За замовчуванням у Hibernate використовується реалізація jboss-logging – можна «підставити» будь-яку реалізацію.
• Правильно налаштувати рівні логування – наскільки докладно виводити інформацію за різними пакетами java (щоб не було надлишку або браку логів).
Log4j2
• Одна з найпопулярніших бібліотек для логування.
• Підтримує велику кількість налаштувань, під'єднується до будь-яких фреймворків
@DynamicUpdate
• Оновлять тiльки змiненi поля
• Аннотацiя Hibernate, не JPA
Метод flush
• Синхронізація стану об'єкта Session (persistence context) та БД
• Усі зміни сесія спочатку записує в оперативну пам'ять, метод session.flush() – скидає всі зміни до БД
• Не commit
• Помилка OutOfMemoryException
Генератор ID
• IDENTITY –використання поля autoincrement (якщо підтримується в СУБД)
• TABLE – використовувати власну таблицю (у будь-якому СУБД)
• SEQUENCE –спеціальна таблиця (якщо підтримується СУБД)
• AUTO –JPA бібліотека сама вибирає який спосіб використовувати (залежить від реалізації бібліотеки)
• Може виникнути помилка «Table 'hibernate_sequence' doesn't exist»
• За замовчуванням Hibernate намагається знайти sequence таблицю hibernate_sequence
Параметр property hbm2ddl
Якщо вказано параметр true – створюється нова таблиця навіть із зміненими назвами полів
Вибірка полів
• Використовувати інтерфейс Selection
• У ранніх версіях Hibernate API часто використовувався Projection, але він для Deprecated API (Criteria)
• Поля з великим обсягом даних – не завантажувати відразу, а лише на вимогу
Q&A
Дякую всім за заняття!🙌🏻
❗️🎓Тема уроку: 5. Робота з Hibernate
Нагадую, що дедлайн здачі домашніх робіт – до наступного уроку.
Якщо виникають складнощі, пишіть, допоможу із задоволенням 😌
Запис лекції тренер опублікує трохи пізніше 🖥
Не забудьте повторити матеріал та підготуватися до наступного уроку📚
Успіху і до зустрічі!🤩
1. Напишіть чек-лист тестування короткострокової події.
Інтернет-магазин робить промоакцію – протягом одного робочого дня з 8 ранку і до 22 вечора на
сайті мають бути знижки на різні категорії товарів у різний час:
•До 12:00 на взуття, з 12:00 і до 18:00 на курточки, а з 18:00 до 22:00 – на штани.
•Знижка на взуття 15%, на штани - 10%, а на куртки - 30%.
1. Створіть таблицю рішень для тестування системи продажів у кінотеатрі, згідно з нею на фільми діє знижка у таких випадках:
•Ранкова сесія в будь-який день – 15%
•Усі сеанси у глядацький день – 30%
•Пільгові категорії відвідувачів (студенти, пенсіонери, інваліди) за умови надання довідок – 30%
•Знижки підсумовуються, за виключенням знижки у глядацький день