Повний огляд 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: bit.ly/3IRrJhj
Класне відео! Радий що знімаєте ! Не зупиняйтесь (шукав українсько-мовний контент по java дуже довго)
Дуже круте відео, працюю із spring jpa приблизно 2 роки, але всерівно дізнався багато нового. Дякую за контент!
Бобокод красавела! Йой!
@Bobocode
Жыл бұрын
Йой! :)
Лайк, подписка, комментарий в поддержку крутого контента на ютубе.
Дякую. Дуже корисне та пізнавальне відео.
@Bobocode
9 ай бұрын
Дякую!
Писав довгий коментар з чим я там не згодний, а потім витер. Тож просто коментар, щоб канал розвивався)
@Bobocode
Жыл бұрын
Ну ти мене заінтригував. Тепер поділися, будь ласка, з чим не згоден :) Дякую 🙂
@feoktant
Жыл бұрын
@@Bobocode скорше пару речень, на скільки тема з репозиторієм широка. У Фаулера окрім визначення майже немає коду. Він одразу переходить до QueryObject і Criteria, хоча репозиторій може бути і без них, як описує Еванс у ДДД (Фаулер на нього часто ссилається). Мене визначення по Фаулеру сильно збило у свій час, ніби репозиторій - то просто CRUD, через collection-like операції. Головна ж domain model, з*являється різниця між DAO і Repository. Цей паттерн дуже крутий, кочує між різними мовами і фреймворками. Але у Фаулера він описаний по Хібернейту) Треба починати свої відео робити
А як бути, якщо хочеться на фронт передавати різні DTO однієї ентіті з контролера? В SpringDataRest як раз projections забезпечують варінт віддати таку дто, або іншу тільки по суті передачею імені projection як get параметр. В простому контроллері треба під кожний варіант писати смій метод? Чи можна якось також параметром передати з фронта, як в відео в репозиторій прокидували класс?
Щодо findAll. На багатьох проектах бази були великі. І викликати findAll() або count() означало моментальний гнів девопсів. Пул забивається, запит іде пару хвилин, і особливо нічого я зробити не можу. Щойно побачив ще findAll(sort) - це за межами добра і зла( Чому такі небезпечні операції є в стандартному інтерфейсі Repository?
@mykhailomolnar2432
Жыл бұрын
А ви використовули пагінацію чи мудрували з індексами? І замість count() робили explain analyze?
@feoktant
Жыл бұрын
@@mykhailomolnar2432 робив і пагінацію, і seek method, і стримінг. Дивлячись до була за задача. З count може бути трохи простіше, бо в деяких базах є на кшталт приблизний count (mongo). Якщо не помиляюся, MySQL, Elastic такий запит переварять легко. З Postgres були питання. Так, зазвичай був eplain analyze, після того яr на проді моніторилися і логувалися найбільш довгі запити.
Крутий урок! Скажіть, ніхто не знає, на 25:42 там де підказки до назв derived methods, це фішка Ultimate версії IntelliJ чи може плагін якийсь? ))
@Bobocode
11 ай бұрын
Це, напевно, якись плагін від Spring.
@baibula
11 ай бұрын
@@Bobocode дякую!
я прошу прощения , а разве это правильно обращаться из контроллера к репозиторию на прямую без сервиса или это просто в обучающих целях как тест
@Bobocode
Жыл бұрын
Це просто в навчальних цілях
@AlexSmith-oe6pr
Жыл бұрын
MVC - a feature, not a bug.
"Оцю штуку" потрібно викорінювати з лексикону - дуже била по вухах. Контент Ок, авторові вподобайка. Для мене - заповільне подання матеріалу :)
@intBRiNGER
Жыл бұрын
Звичайний сленг. Часто чую від зарубіжних спікерів фразу "this guy" :-)
@MrYougetit
Жыл бұрын
@@intBRiNGER не згоден з формулюванням що це сленг
Довго не міг зрозуміти чому у мене немає distinct і не дублюються Persons - тут kzread.info/dash/bejne/k36pzsegmtS9ddo.html Виявилось, що залежить від версії спрінга (тепер більш пізня версія є і Jakarta мабуть це врахувала)
@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