Повний огляд Spring Data JPA 🤘

👉 Приєднуйся до Bobocode Community: www.bobocode.com/
_________________________________________________________
Наш 𝙋𝙖𝙩𝙧𝙚𝙤𝙣: / bobocode
Наш 𝙂𝙞𝙩𝙃𝙪𝙗: github.com/bobocode-projects
_________________________________________________________
Bobocode Telegram-канал: t.me/bobocode​
Bobocode Linkedin: bit.ly/2RWPQF5
Bobocode в Twitter: bit.ly/3vaQiOl
Тарас в LinkedIn: bit.ly/2ElWg8J
Тарас в Twitter: bit.ly/33Pmuwg
________________________________________________________
29-те заняття тренувальної програми Ultimate Enterprise Java (2021).
УВАГА! Відеозапис не містить активної частини заняття.
00:00 - Нарізка основних моментів
01:58 - Початок
03:32 - Spring Data
05:22 - Spring Data JPA
05:41 - Патерн Repository в Spring Data JPA
10:02 - Transaction Manager
11:39- На що звертати увагу при розробці Persistence Layer на базі JPA
15:49 - Spring data JPA Demo
17:28 - Мінімальний набір проперті, щоб під’єднатись до бази даних🔥
19:41 - інтерфейс JpaRepository
22:59 - Генерація запитів по імені метода
26:00 - JPQL запити через анотацію @Query
31:50 - Патерн DTO
34:49 - Pagenation в Spring data
44:11 - Мапінг в DTO з допомогою JPQL
50:23 - Мапінг в DTO за іменем і параметрами метода
01:02:40 - Як вигрузити дані з бази у вигляді Stream?🤔
01:13:19 - Коли є сенс використовувати стрімінг для вигрузки даних з бази?
01:20:08 - DTO в коді vs VIEW на стороні бази даних
#opensource #java #education

Пікірлер: 26

  • @Bobocode
    @Bobocode Жыл бұрын

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

  • @trnrvl
    @trnrvl Жыл бұрын

    Класне відео! Радий що знімаєте ! Не зупиняйтесь (шукав українсько-мовний контент по java дуже довго)

  • @user-ew8ne4iy9b
    @user-ew8ne4iy9b Жыл бұрын

    Дуже круте відео, працюю із spring jpa приблизно 2 роки, але всерівно дізнався багато нового. Дякую за контент!

  • @user-if4ts7dh5e
    @user-if4ts7dh5e Жыл бұрын

    Бобокод красавела! Йой!

  • @Bobocode

    @Bobocode

    Жыл бұрын

    Йой! :)

  • @MrRomanvideo
    @MrRomanvideo Жыл бұрын

    Лайк, подписка, комментарий в поддержку крутого контента на ютубе.

  • @user-nq4bt9lm2d
    @user-nq4bt9lm2d10 ай бұрын

    Дякую. Дуже корисне та пізнавальне відео.

  • @Bobocode

    @Bobocode

    9 ай бұрын

    Дякую!

  • @feoktant
    @feoktant Жыл бұрын

    Писав довгий коментар з чим я там не згодний, а потім витер. Тож просто коментар, щоб канал розвивався)

  • @Bobocode

    @Bobocode

    Жыл бұрын

    Ну ти мене заінтригував. Тепер поділися, будь ласка, з чим не згоден :) Дякую 🙂

  • @feoktant

    @feoktant

    Жыл бұрын

    ​@@Bobocode скорше пару речень, на скільки тема з репозиторієм широка. У Фаулера окрім визначення майже немає коду. Він одразу переходить до QueryObject і Criteria, хоча репозиторій може бути і без них, як описує Еванс у ДДД (Фаулер на нього часто ссилається). Мене визначення по Фаулеру сильно збило у свій час, ніби репозиторій - то просто CRUD, через collection-like операції. Головна ж domain model, з*являється різниця між DAO і Repository. Цей паттерн дуже крутий, кочує між різними мовами і фреймворками. Але у Фаулера він описаний по Хібернейту) Треба починати свої відео робити

  • @andriipiatnytskyi9562
    @andriipiatnytskyi9562 Жыл бұрын

    А як бути, якщо хочеться на фронт передавати різні DTO однієї ентіті з контролера? В SpringDataRest як раз projections забезпечують варінт віддати таку дто, або іншу тільки по суті передачею імені projection як get параметр. В простому контроллері треба під кожний варіант писати смій метод? Чи можна якось також параметром передати з фронта, як в відео в репозиторій прокидували класс?

  • @feoktant
    @feoktant Жыл бұрын

    Щодо findAll. На багатьох проектах бази були великі. І викликати findAll() або count() означало моментальний гнів девопсів. Пул забивається, запит іде пару хвилин, і особливо нічого я зробити не можу. Щойно побачив ще findAll(sort) - це за межами добра і зла( Чому такі небезпечні операції є в стандартному інтерфейсі Repository?

  • @mykhailomolnar2432

    @mykhailomolnar2432

    Жыл бұрын

    А ви використовули пагінацію чи мудрували з індексами? І замість count() робили explain analyze?

  • @feoktant

    @feoktant

    Жыл бұрын

    @@mykhailomolnar2432 робив і пагінацію, і seek method, і стримінг. Дивлячись до була за задача. З count може бути трохи простіше, бо в деяких базах є на кшталт приблизний count (mongo). Якщо не помиляюся, MySQL, Elastic такий запит переварять легко. З Postgres були питання. Так, зазвичай був eplain analyze, після того яr на проді моніторилися і логувалися найбільш довгі запити.

  • @baibula
    @baibula11 ай бұрын

    Крутий урок! Скажіть, ніхто не знає, на 25:42 там де підказки до назв derived methods, це фішка Ultimate версії IntelliJ чи може плагін якийсь? ))

  • @Bobocode

    @Bobocode

    11 ай бұрын

    Це, напевно, якись плагін від Spring.

  • @baibula

    @baibula

    11 ай бұрын

    ​@@Bobocode дякую!

  • @antonignatenko7776
    @antonignatenko7776 Жыл бұрын

    я прошу прощения , а разве это правильно обращаться из контроллера к репозиторию на прямую без сервиса или это просто в обучающих целях как тест

  • @Bobocode

    @Bobocode

    Жыл бұрын

    Це просто в навчальних цілях

  • @AlexSmith-oe6pr

    @AlexSmith-oe6pr

    Жыл бұрын

    MVC - a feature, not a bug.

  • @MrYougetit
    @MrYougetit Жыл бұрын

    "Оцю штуку" потрібно викорінювати з лексикону - дуже била по вухах. Контент Ок, авторові вподобайка. Для мене - заповільне подання матеріалу :)

  • @intBRiNGER

    @intBRiNGER

    Жыл бұрын

    Звичайний сленг. Часто чую від зарубіжних спікерів фразу "this guy" :-)

  • @MrYougetit

    @MrYougetit

    Жыл бұрын

    @@intBRiNGER не згоден з формулюванням що це сленг

  • @user-xf4ht5uc1p
    @user-xf4ht5uc1p7 ай бұрын

    Довго не міг зрозуміти чому у мене немає distinct і не дублюються Persons - тут kzread.info/dash/bejne/k36pzsegmtS9ddo.html Виявилось, що залежить від версії спрінга (тепер більш пізня версія є і Jakarta мабуть це врахувала)

  • @Bobocode

    @Bobocode

    7 ай бұрын

    Привіт. Так, дякую, що підмітили. Це насправді залежить від версії Hibernate. *From Hibernate ORM 6, distinct is always passed to the SQL query and the flag QueryHints**#HINT_PASS_DISTINCT_THROUGH** has been removed.* Тут можна прочитати більш детально: docs.jboss.org/hibernate/orm/6.0/migration-guide/migration-guide.html#query-sqm-pass-thru

Келесі