Вступ до 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

КОМЕНТАРІ • 23

  • @Bobocode
    @Bobocode  Рік тому

    👉 Навчання від Bobocode: bit.ly/3IRrJhj

  • @halavich9672
    @halavich9672 Рік тому +4

    Дуже кайфове оверв'ю на початку відео. Не просто дурна нарізка для байту на перегляд, а саме умовний рекап, для того, щоб зрозуміти свій рівень знань і чи вже розумієш тему перед відео

    • @Bobocode
      @Bobocode  Рік тому

      Гарно підмітили, дякую!

  • @A_Lone_Shadow
    @A_Lone_Shadow Рік тому +3

    Ще раз дякую за цю велечезну кількість настільки крутого навчального матерілу
    Недавно повернувся до кодінгу і продовжив дивитися курс (5 уроків назад)
    Відчуття того, що ти написав працюючий кусок коду, який тобі реально дозволяє витягти будь-який рядок БД в реальний об'єкт(без нюансів з id, але все ж)
    Просто вау :)

    • @Bobocode
      @Bobocode  Рік тому

      Дякую за відгук! ;)

  • @sad-philosopher
    @sad-philosopher Рік тому

    Як завжди - вподобайка та коментар на підтримку каналу.

  • @feoktant
    @feoktant Рік тому +2

    З відео складається враження, що JPA - страшний витвір бюрократії) був Хібернейт, але ніт, в джаві не можна просто мати фреймворк. Злизали з нього стандарт. Прописали в стандарт деталі імплементації - рефлексію(!). Написали дохлий EclipseLink, котрий суттєво відрізняється по персісту. Перейти з одного на другий легко неможливо 🤷‍♂️
    Один плюс - дали анотації мапінгу, котрі пішли в спрінг дату(може використовувати чистий jdbc, без хібу), і по факту є micro ORM на джаві, де використовується тільки data mapper. Ще їх можна в інших лібах зустріти, менш популярних.
    І виходить, стандарт заради стандарту) ніхто ні з ким не конкурує, а джунів по рукам бити можна на код рев'ю за неправильний імпорт)

  • @user-nq4bt9lm2d
    @user-nq4bt9lm2d Рік тому

    Дякую за відео. Нарешті добрався до цієї теми. Багато нового. Робив приклади з відео на існуючому, не спрінг проекті. Стикнувся з проблемою, що persistence не сканував entity класи, довелось явно в конфігурацію вказувати клас. Трохи розчарований, гадав що є більше елегантний спосіб робити запити з where. От наприклад, є ендпойтн з фільтрацією, де поля можуть бути або ні. Я вирішував це питання з допомогою StringBuilder для формування вірної умови і перевірок на null. Виходить, що в JPA теж саме.

    • @Bobocode
      @Bobocode  Рік тому

      Можна ще використовувати Criteria API для генерації динамічний запитів.

  • @MrRomanvideo
    @MrRomanvideo Рік тому +1

    Комментар для підтримки відео. На Лябди для дорослих записався :)

  • @vitalii2608
    @vitalii2608 Рік тому +3

    Привіт, зараз в ТрО, кодінг прийшлося відкласти...Чи лишиться цей курс у вільному доступі на далі?

    • @Bobocode
      @Bobocode  Рік тому +6

      Привіт, звичайно. Попереду ще відеозаписи 17-ти занять по цій програмі.

  • @user-nq4bt9lm2d
    @user-nq4bt9lm2d Рік тому

    @Bobocode Якою клавіатурою користуєтесь?

    • @Bobocode
      @Bobocode  Рік тому

      "Рідною" клавіатурою макбука.

  • @feoktant
    @feoktant Рік тому

    Сесія - це Unit of Work за Фаулером?

  • @feoktant
    @feoktant Рік тому

    "Що таке ORM" - це якраз дуже складне питання. По моїм спостереженням, у суспільно-несвідомому orm це "не писати sql". І чи можливий orm у імутабельних об'єктах?

    • @Bobocode
      @Bobocode  Рік тому +1

      Імутабельні об`єкти недуже налазять на цю ідею... Але якщо сприймати ORM просто як мапер (без dirty checking і т.п.), то можна зробити і з умутабельними.

    • @feoktant
      @feoktant Рік тому

      @@Bobocode треба було йти на Bibernate 😅

  • @hendjfjfj.hdjfn_h
    @hendjfjfj.hdjfn_h Рік тому

    Це 23 урок , бо попередній теж 23 ? (цифра на постері)

    • @Bobocode
      @Bobocode  Рік тому

      Виправили. Це 24-й урок.

  • @shvch_tsb6539
    @shvch_tsb6539 9 місяців тому

    В пеклі є особливе місце для розробників Hibernate в частині 'properties'. Нормально прописати їх під правильний діалект SQL та інтегрувати зі Spring - місія нездійсненна. Шість годин часу на пошуки інфи коту під хвіст. Програма так і не запускається. На біса такий Hibernate? Ця критика не Вашому уроку. Викладаєте Ви добре і цей опис певно найкращий на просторах інтернету. Але сам застосунок, хай він згорить!

    • @Bobocode
      @Bobocode  9 місяців тому

      Відносно недавно в Hibernate була велика зміна. Починаючи з версії 6 всі пакети, які раніше були javax, стали jakarkta.
      Це одна з типових проблем, які можуть трапитися. Бо більшість туторіалів зі старими прикладами, а якраз в проперті файлах пакети теж вказуються і це може бути причиною, чому не працює.