Kurs Hibernate i JPA
Wszystko o przetwarzaniu danych
Dla kogo jest ten kurs?
Kurs przeznaczony jest zarówno dla osób niemających do tej pory styczności z frameworkiem Hibernate, ale także dla osób, które mają już jakąś podstawową wiedzę na jego temat, a chciałyby ją jeszcze uporządkować i znacznie poszerzyć.

Cześć, nazywam się Mateusz Dąbrowski, od kilkunastu lat zajmuję się zawodowo programowaniem. Moim głównym językiem jest Java, ale programowałem też w takich językach jak Python, PHP, Javascript.
W swojej karierze współtworzyłem wiele aplikacji, głównie dla sektora bankowego, ale nie są mi obce także projekty z sektora ubezpieczeń czy telekomunikacji.
- 12 lat w branży IT
- ponad 9 lat programowania w Javie
- 5 lat w bankowości
- setki tysięcy linii napisanego kodu
- bloger: NullPointErexception.pl
- youtuber: przejdź do kanału
- pasjonat programowania
Co otrzymasz w kursie?
Kurs Hibernate i JPA (wszystko o przetwarzaniu danych) to ponad 8,5 godziny materiału poświęconego jednemu z najważniejszych i najbardziej zaawansowanych narzędzi, jakim jest Hibernate. Hibernate to obecnie drugi najpopularniejszy framework w świecie Javy tuż po frameworku Spring.
Spring framework i Hibernate to dwa najczęściej pojawiające się frameworki w ogłoszeniach o pracę na stanowisko Java Developera, niezależnie czy chodzi o Juniora, Mida, czy Seniora.
W kursie omawiam wszystkie zagadnienia związane z Hibernate używanym jako dostawca JPA. Hibernate wraz z JPA, to jedna z najpopularniejszych konfiguracji użycia tego narzędzia.
Zaczynam od omawiania podstawowych zagadnień, następnie przechodzę do operacji CRUD i wszystkich rodzajów relacji, jakie mogą wystąpić przy mapowaniu encji w Hibernate. Dalej skupiam się na zaawansowanym pobieraniu danych przy użyciu języka zapytań JPQL. A na koniec przechodzę do bardziej złożonych tematów takich jak Caching i Batchowanie.
Szczegółowy spis treści znajdziesz poniżej⬇
Kurs Hibernate to:
- 12 modułów, w których poruszam najważniejsze aspekty Hibernate'a
- Kilkadziesiąt praktycznych przykładów
- Zagadnienia teoretyczne, które są uzupełnieniem dla kodu
- Ponad 8,5 godziny materiału video
- Omówione najczęściej pojawiające problemy w codziennej pracy
- Niezliczona ilość porad i praktycznych wskazówek

Spis treści kursu:
Moduł 1
Wprowadzenie
- Powitanie
- Jak zbudowany jest kurs
- Wiedza, która jest potrzebna w kursie
- Jak uzyskać pomoc podczas trwania kursu
- JDBC vs Hibernate (background dla Hibernate)
- Instalacja środowiska Instellij
- Instalacja Javy (którą wersję wybrać)
- Importowanie projektów w Intellij
- Instalowanie bazy danych Mysql
- Wykorzystanie Mysql Workbench
Moduł 2
Hibernate i JPA
- Wprowadzenie do modułu
- Wprowadzenie do Hibernate i JPA
- Do czego służą: SessionFactory, Session
- Encje, cykl życia encji
Moduł 3
Operacje CRUD
- Wprowadzenie do modułu
- Jak zbudowana jest aplikacja?
- Jakie podejście wybrać przy projektowaniu bazy danych?
- Zapis encji
- Pobieranie encji
- Aktualizacja encji
- Usuwanie encji
Moduł 4
Relacje
- Wprowadzenie do modułu
- Relacja one-to-many
- Pobieranie listy encji (one-to-many bidirectional)
- Usuwanie kaskadowe
- Relacja one-to-one
- Relacja one-to-one bidirectional
- Relacja many-to-many
- Kaskadowe zapisywanie encji w relacjach
- Zapisywanie encji powiązanych w relacji many-to-many
- Zapisywanie encji powiązanych w relacji one-to-many
- Usuwanie encji powiązanych
(relacja one-to-one) - Usuwanie encji powiązanych
(relacja many-to-many) - Aktualizacja listy encji
(relacja one-to-many)
Moduł 5
Zaawansowane pobieranie danych
- Wprowadzenie do modułu
- Zawansowane właśiwości języka JPQL
- Mapowanie odpowiedzi niestandardowego zapytania do DTO
- Projekcje DTO
- Podstawowe zapytania inner i outer join w JPQL
- Wiele joinów w jednym zapytaniu
- Problem iloczynu kartezjańskiego w zapytaniach
- Wiele joinów w niestandardowym zapytaniu JPQL
- FetchType – bezpośrednie pobieranie vs pobieranie zapytaniami JPQL
- FetchMod a zapytania JPQL
- Zapytania IN
- Entity Graph
- Problem N + 1
Moduł 6
Batching
- Wprowadzenie do modułu
- Wprowadzenie do przetwarzania batchowego w Hibernate
- Batch insert
- Batch update + stronicowanie wyników
- Batch update + scrollowanie wyników (strumieniowanie)
- Batch update – zapytanie update w JPQL
- Batch delete
- Batch delete – zapytanie delete w JPQL
Moduł 7
JPA Criteria API
- Wprowadzenie do modułu
- Co to jest Criteria API?
- Dynamiczne zapytanie join
- Filtrowanie w Criteria API
- Użycie funkcji agregujących w Criteria API
Moduł 8
Niestandardowe mapowania i operacje
- Wprowadzenie do modułu
- Mapowanie relacji za pomocą @ElementCollection
- Mapowanie tabel wpół dzielących PRIMARY KEY (@MapsId)
- OrphantRemoval – usuwanie powiązanych encji w relacji one-to-many
- Dziedziczenie encji (Single table inheritance)
- Porównywanie encji (equals i hashcode)
- Sortowanie kolekcji
- Relacja one-to-many mapowana na trzech tabelach
Moduł 9
Transakcje
- Wprowadzenie do modułu
- Wprowadzenie do transakcji
- Jak obsługiwać transakcje?
- Optymalizacje odczytu w transakcjach
Moduł 10
Caching
- Wprowadzenie do modułu
- Wprowadzenie do cache’owania
- Second level cache
- Cachowanie kolekcji
- Query cache
Moduł 11
Locking
- Wprowadzenie do modułu
- Co to są locki i do czego są potrzebne?
- Optimistic locking
- Pesimistic locking
Moduł 12
Hibernate i Spring Framework
- Wprowadzenie do modułu
- DAO (Data Access Object) w Spring Framework
- Spring Data, czyli Hibernate w opakowaniu Springa
- Podsumowanie i zakończeniu kursu
Już ponad 400 osób kupiło mój kurs.
Co o kursie sądzą uczestnicy?
Komentarze kursantów z Facebooka


Jak kurs wygląda od środka?
Poniżej zamieszczam 2 lekcje demo z kursu. Możesz je obejrzeć, zanim kupisz kurs, pomoże Ci to, zorientować się jak kurs wygląda od środka i w jakiej formie jest prowadzony.
Moduł 4
Relacja OneToMany
W tym odcinku pokazuję jak z mapować relację
one-to-many w najprostszy możliwy sposób. Opowiadam też o tym, co to jest Lazy Loading w Hibernate i pokazuję jego działanie.
Moduł 6
Batch update + stronicowanie wyników
W tym odcinku pokazuję jak aktualizować encje batchowo wraz ze stronicowaniem pobieranych danych, tak żeby nasz program działał optymalnie.
Co jest w cenie kursu?
- Ponad 8,5 godziny solidnego materiału
- Kurs jest dostępny bez ograniczeń czasowych (dostępność kursu 24/7)
- Kody źródłowe dla wszystkich przykładów
- Dożywotni dostęp (bez dodatkowych opłat)
Najczęściej zadawane pytania:
Kiedy rozpoczyna się kurs?
Po opłaceniu kursu otrzymujeszcz dwa maile: pierwszy z loginem i hasłem do platformy (jeśli jeszcze nie masz na niej konta), drugi z linkiem do zakupionego kursu. Kurs rozpoczyna się w momencie opłacenia dostępu, wystarczy, że zalogujesz się do platformy i wszystkie lekcje kursu będą dla Ciebe dostępne.
Jak długo mam dostęp do tego kursu?
Otrzymujesz dożywotni dostęp do tego kursu. Nie są wymagane dodatkowe opłatny.
Czy dostanę cały kurs od razu?
Tak. Wszystkie lekce zawarte w kursie są dostępne od razu po zalogowaniu się do platformy
Na jakiej wersji Javy i Hibernate jest oparty kurs?
Wszystkie przykłady były uruchamiane na Javie 11 i Hibernate 5.4.18. Jeśli chcesz uruchomić przykłady na nowszych wersjach Javy, być może będzie potrzebna aktualizacja Hibernate do wyższej wersji.
Hibernate w wersji 5.4.x wspiera Javę 8 i 11.
Czy mogę prosić o wystawienie faktury za kurs?
Tak, wystawiam faktury vat. Wystarczy, że w formularzu zamówienia zaznaczysz dodatkowego checkboxa i podasz dane firmy, na którą ma być wystawiona faktura. Po zakupie faktura wysyłana jest automatycznie na maila podanego w zamówieniu.
Co jeśli mam inne pytania?
Skorzystaj z formularza kontaktowego na mojej stronie, na pewno odpowiem, znajdziesz go tutaj. Możesz także skontaktować się ze mną na moim profilu facebookowym tutaj.