Szkolenie: Zaawansowane aspekty Jakarta Persistence API i Hibernate
W ramach szkolenia "Zaawansowane aspekty Jakarta Persistence API i Hibernate" stosujemy najnowsze wersje frameworka Hibernate oraz języka Java.
- Trenerzy praktycy
- Kameralne grupy
Czas trwania szkolenia:2 dni (16h)
Kod kursu:HIB/EXT
Zaawansowane aspekty Jakarta Persistence API i Hibernate
Cele szkolenia
Poznanie nietypowych możliwości jakie daje Hibernate w celu osiągnięcia większej wydajności bez potrzeby nadmiarowego pisania kodu.
Dogłębne wyjaśnienie praktycznych problemów napotykanych w trakcie wytwarzania aplikacji z wykorzystaniem Jakarta Persistence API oraz Hibernate.
Poznanie sztuczek, które mają wpływ na wydajność ostatecznego rozwiązania.
Dla kogo?
Programistów oraz architektów systemów, którzy chcą rozszerzyć umiejętności i wiedzę na temat bardziej zaawansowanych sposób wykorzystania JPA oraz Hibernate.
Zalety
W ramach szkolenia stosujemy najnowsze wersje frameworka Hibernate oraz języka Java.
Tematy teoretyczne opierają się na przykładach do rozwiązania w ramach warsztatów z automatycznymi testami, które na bieżąco oceniają poprawność.
Nastawienie na praktyczne przykłady, które moją pojawiać się w codziennej pracy z zastosowaniem Jakarta Persistence API oraz Hibernate.
Wymagania
Od uczestników szkolenia wymagana jest umiejętność programowania w języku Java oraz podstawy relacyjnych baz danych i języka SQL
W cenie otrzymasz:
Materiały szkoleniowe
Certyfikat ukończenia szkolenia
W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki
Program szkolenia
Nietypowe przypadki mapowania obiektowo relacyjnego
Pola wirtualne z wykorzystaniem adnotacji @Formula oraz @Transient
Wydajna obsługa danych binarnych
Własne konwertery wartości - AttributeConverter
Adnotacja @Embedded a adnotacja @Parent
Poprawne użycie atrybutów w standardowych adnotacjach relacji
Sposoby mapowania typów kontenerowych oraz tablic z wykorzysatniem adnotacji @ElementCollection oraz @CollectionTable
Metody poprawnego odwzorowywania kolekcji Map
Adnotacja @SQLRestriction
Aspekty generowania kluczy głównych
Klucze główne a prawidłowa implementacja metod equals i hashCode
Adnotacja @NaturalID
Klucze złożone z wykorzystaniem @EmbeddedId
Klucz derywatywny - @MapsId
Aspekty polimorfizmu
Strategie odzworowania zależności polimorficznych
Stosowanie interfejsów w polach encji z użyciem adnotacji @Any oraz @ManyToAny
Optymalizacja stosowania sesji
Detaching / Merging
Strategie wykonywania operacji flush przez Hibernate
Stateless session
Session scrolling
Tryb read-only
Wydajność zapytań
Fetch Join
Named Queries / Native Queries
Adnotacje @Filter oraz @FilterDef
Usuwanie rekordów "na miękko" z wykorzystaniem adnotacji @SoftDelete
Bulk Update / Delete
Grafy encji: Load Graph vs Entity Graph
Strategie Fetching
Tworzenie zapytań agregacyjnych z wykorzystaniem Criteria API
Zapytania natywne i adnotacja @SqlResultSetMapping
Widoki z użyciem adnotacji @Subselect
Optymalizacje w zakresie sortowania zawartości
Wykorzystanie wywołań zwrotnych
Interceptory
Callbacki
Wykorzystanie pamięci cache
Cache pierwszego poziomu
Opcjonalny cache drugiego poziomu - integracja z dodatkowymi rozwiązaniami
Strategie aktualizacji zawartości cache
Cache dla zapytań
Cache dla planów zapytań
Profilowanie i monitorowanie wydajności
Dobór kolekcji
Niestandardowe pule połączeń
Normalizacja schematu = problem N+1 / produkt kartezjański
Transakcje optymistyczne i pesymistyczne
Sposoby wersjonowania rekordów
Stosowanie blokad pesymistycznych