Вступ до ORM, JPA та Hibernate
Вставка
- Опубліковано 15 чер 2024
- 👉 Приєднуйся до Bobocode Community: www.bobocode.com/
____________________________________________
Patreon: / bobocode
GitHub: github.com/bobocode-projects
Telegram: t.me/bobocode
LinkedIn: bit.ly/2RWPQF5
Twitter: bit.ly/3vaQiOl
Тарас в LinkedIn: bit.ly/2ElWg8J
Тарас в Twitter: bit.ly/33Pmuwg
____________________________________________
24-те заняття тренувальної програми Ultimate Enterprise Java (2021).
УВАГА! Відеозапис не містить активної частини заняття.
00:00 Нарізка основних моментів
04:27 Початок
05:08 Що таке ORM?
07:10 Чому ми приділяємо багато часу ORM?
07:33 Збереження даних (Java VS. БД)
09:29 Нашарування технологій
10:25 ПОЧАТОК РОБОТИ З КОДОМ
11:23 Налаштування JPA + Hibernate
13:39 Створюємо persistence.xml
16:29 Точка входу в JPA/Hibernate
16:44 JPA VS. Hibernate
19:40 Створюємо JPA сутність (entity)
20:35 Як витягнути сутність? (READ)
22:48 Сесію потрібно закривати
31:27 Завдання (реалізувати find)
38:36 Як зберегти нову сутність? (CREATE)
41:54 Як видалити сутність? (DELETE)
43:18 Як змінити сутність? (UPDATE)
46:48 Чому нема методу update?
50:07 Як реалізувати пошук по полю?
52:39 Нові пакети (jakarta)
55:28 Фінальне слово
#opensource #java #education
👉 Навчання від Bobocode: bit.ly/3IRrJhj
Дуже кайфове оверв'ю на початку відео. Не просто дурна нарізка для байту на перегляд, а саме умовний рекап, для того, щоб зрозуміти свій рівень знань і чи вже розумієш тему перед відео
Гарно підмітили, дякую!
Ще раз дякую за цю велечезну кількість настільки крутого навчального матерілу
Недавно повернувся до кодінгу і продовжив дивитися курс (5 уроків назад)
Відчуття того, що ти написав працюючий кусок коду, який тобі реально дозволяє витягти будь-який рядок БД в реальний об'єкт(без нюансів з id, але все ж)
Просто вау :)
Дякую за відгук! ;)
Як завжди - вподобайка та коментар на підтримку каналу.
З відео складається враження, що JPA - страшний витвір бюрократії) був Хібернейт, але ніт, в джаві не можна просто мати фреймворк. Злизали з нього стандарт. Прописали в стандарт деталі імплементації - рефлексію(!). Написали дохлий EclipseLink, котрий суттєво відрізняється по персісту. Перейти з одного на другий легко неможливо 🤷♂️
Один плюс - дали анотації мапінгу, котрі пішли в спрінг дату(може використовувати чистий jdbc, без хібу), і по факту є micro ORM на джаві, де використовується тільки data mapper. Ще їх можна в інших лібах зустріти, менш популярних.
І виходить, стандарт заради стандарту) ніхто ні з ким не конкурує, а джунів по рукам бити можна на код рев'ю за неправильний імпорт)
Дякую за відео. Нарешті добрався до цієї теми. Багато нового. Робив приклади з відео на існуючому, не спрінг проекті. Стикнувся з проблемою, що persistence не сканував entity класи, довелось явно в конфігурацію вказувати клас. Трохи розчарований, гадав що є більше елегантний спосіб робити запити з where. От наприклад, є ендпойтн з фільтрацією, де поля можуть бути або ні. Я вирішував це питання з допомогою StringBuilder для формування вірної умови і перевірок на null. Виходить, що в JPA теж саме.
Можна ще використовувати Criteria API для генерації динамічний запитів.
Комментар для підтримки відео. На Лябди для дорослих записався :)
Привіт, зараз в ТрО, кодінг прийшлося відкласти...Чи лишиться цей курс у вільному доступі на далі?
Привіт, звичайно. Попереду ще відеозаписи 17-ти занять по цій програмі.
@Bobocode Якою клавіатурою користуєтесь?
"Рідною" клавіатурою макбука.
Сесія - це Unit of Work за Фаулером?
YEAP
"Що таке ORM" - це якраз дуже складне питання. По моїм спостереженням, у суспільно-несвідомому orm це "не писати sql". І чи можливий orm у імутабельних об'єктах?
Імутабельні об`єкти недуже налазять на цю ідею... Але якщо сприймати ORM просто як мапер (без dirty checking і т.п.), то можна зробити і з умутабельними.
@@Bobocode треба було йти на Bibernate 😅
Це 23 урок , бо попередній теж 23 ? (цифра на постері)
Виправили. Це 24-й урок.
В пеклі є особливе місце для розробників Hibernate в частині 'properties'. Нормально прописати їх під правильний діалект SQL та інтегрувати зі Spring - місія нездійсненна. Шість годин часу на пошуки інфи коту під хвіст. Програма так і не запускається. На біса такий Hibernate? Ця критика не Вашому уроку. Викладаєте Ви добре і цей опис певно найкращий на просторах інтернету. Але сам застосунок, хай він згорить!
Відносно недавно в Hibernate була велика зміна. Починаючи з версії 6 всі пакети, які раніше були javax, стали jakarkta.
Це одна з типових проблем, які можуть трапитися. Бо більшість туторіалів зі старими прикладами, а якраз в проперті файлах пакети теж вказуються і це може бути причиною, чому не працює.