Simple Steps: szkolenia Java, UML i BPMN
"przypomina nieco Sapkowskiego‚ nieco Tolkiena‚ a najbardziej chyba Grę o tron" - szczere-recenzje.pl, "Lektura tej książki wciągnęła mnie bez reszty. Z niecierpliwością czekam na więcej" - Maria Górska, "jeżeli macie ochotę na dobre‚ mocne high fantasy - nie macie wyboru‚ musicie sięgnąć po Wojny Żywiołów" - biblioteczka..., "genialna‚ wciągająca i intrygująca" - Ewelina Kiełbasińska, "Gorąco polecam!" - Addicted to books, "fabuła brzmi po prostu świetnie!" - kasiek-mysli.blogspot.com, "Jest to pozycja obowiązkowa dla każdego fana fantastyki" - moje-ukochane-czytadelka.blogspot.com, "Miałam wrażenie‚ że z każdą kolejną stroną roztacza się przede mną zupełnie inny świat" - biblioteczkaciekawychksiazek, "Zdecydowanie polecam‚ bo jest to kawał dobrze napisanego polskiego high fantasy!" - biblioteczkaciekawychksiazek, "mogę polecić wszystkim fanom tego gatunku" - zapiski-okularnicy.pl, "wciągnie nie tylko fanów fantastyki‚ ale i każdego czytelnika" - subiektywinie.blogspot.com, "Nie spodziewałam się‚ że aż tak mnie wciągnie." - zapiski-okularnicy.pl, "Jest to powieść zdecydowanie warta uwagi." - in-corner-with-book.blogspot.com, "nie mogę się już doczekać‚ kiedy dorwę tom drugi" - biblioteczkaciekawychksiazek.blogspot.com, "Poleciłabym zdecydowanie osobom gustującym w fantastyce" - marzenieliterackie.blogspot.com, "zachwyca także złożoność i różnorodność wątków" - szczere-recenzje.pl, "Nie mogę się doczekać kiedy znów przeniosę się do tego świata" - moje-ukochane-czytadelka.blogspot.com, "Najchętniej od razu sięgnęłabym po kolejną część." - zapiski-okularnicy.pl, "nie spodziewałam się tego po fantasy" - Ewelina Kiełbasińska, "książkę gorąco wam polecam!" - kasiek-mysli.blogspot.com, "autor cały czas utrzymywał mnie w napięciu i ciekawości" - moje-ukochane-czytadelka.blogspot.com, "książkę mogę z czystym sumieniem polecić wszystkim fanom gatunku" - Globster na lubimyczytac.pl, "to książka‚ która pobudziła moją wyobraźnię i ciekawość." - zapiski-okularnicy.pl, "Nie ma tu miejsca na nudę" - in-corner-with-book.blogspot.com

Szkolenia Java, UML i BPMN: Aplikacje Java z JPA


Aplikacje Java z JPA

Aplikacje Java z JPA (Hibernate)

Kod szkolenia: JAVA-JPA

Adresaci szkolenia

Szkolenie adresowane jest do programistów Java tworzących warstwę trwałości i integracji, którzy puszkują szybkich, sposobów na budowę niezawodnych aplikacji

Cele szkolenia

Celem szkolenia jest nabycie umiejętności oprogramowania warstwy integracji i tworzenia warstwy trwałości w oparciu o standard JPA. Jak również zwrócenie uwagi na najczęstsze problemy i sposoby ich rozwiązywania.

Czas trwania szkolenia

4 dni, po 8 godzin. Łącznie 32 godzin(y) szkolenia.

Oczekiwane przygotowanie słuchaczy przed szkoleniem

Umiejętność programowania w języku Java. Podstawowa znajomość SQL.

Polecane szkolenia uzupełniające

Szkolenie poprzedzające - Programowanie w Java (JAVA-PRO).
W naszej ofercie znajdują się również szkolenia uzupełniające w zakresie JEE: JAVA-WYD, JAVA-EJB, JAVA-JSF, JAVA-WS, JAVA-JEE.
A także szkolenia na wyższych poziomach: projektowanie (JAVA-WZO) i architektura (JAVA-ARCH)

Program szkolenia

  1. Podstawy JPA
    • Czym jest ORM
      1. Idea mapowania obiektów na relacje
      2. ORM a DAO
      3. JPA jako standard ORM
    • Tworzenie klas trwałych z JPA
      1. @Entity
      2. @Id
      3. @GeneratedValue
      4. Dostęp do wartości
        1. Przez pole
        2. Przez własność (get, set)
        3. @Access (od JPA2.0 - JEE6)
    • Zarządzanie trwałością z JPA
      1. Konfiguracja JPA
        1. persistenace.xml
        2. orm.xml
      2. EntityManager
        1. PersistanceUnit
        2. Cykl życia encji
          1. New
          2. Managed
          3. Deatached
          4. Removed
        3. API zarządzania trwałością
    • Integracja z JPA
      1. Poza kontenerem
        1. Persistance
        2. EntityManagerFactory
      2. W kontenerze
        1. @PersistanceUnit
        2. @PersistanceContext
        3. Extended EntityManager
  2. Relacje w JPA
    • Obiekty zagnieżdżone
      1. @Embeddable
      2. @Embedded
    • Relacje między obiektami
      1. @OneToOne
      2. @OneToMany
      3. @ManyToOne
      4. @ManyToMany
    • Optymalizacje
      1. @JoinColumn
      2. Leniwa inicjalizacja (lazy loading)
        1. Konfiguracja FetchType.LAZY
        2. LazyInitializationException
        3. Problem n+1 zapytań
    • Relacje dwukierunkowe
      1. Definiowanie
      2. Strona bierna - pułapki przy zmianach
    • Kaskadowe zatwierdzanie zmian
      1. CascadeType
        1. ALL
        2. DEATACH
        3. MERGE
        4. PERSIST
        5. REFRESH
        6. REMOVE
      2. Atrybut orphanRemoval (od JPA 2.0 - JEE6)
    • Kolekcje w relacjach typu wiele
      1. @OrderBy
      2. @OrderColumn (od JPA 2.0 - JEE6)
      3. @MapKey
    • Dodatkowe relacje JPA 2
      1. Kolekcje elementów @ElementCollection
      2. Rozbudowane @Embeddable
      3. Rozbudowane użycie map
        1. @MapKeyColumn
        2. @MapKeyJoinColumn
        3. @MapKeyClass
        4. @MapKeyEnumerated
        5. @MapKeyTemporal
  3. Dziedziczenie w JPA
    • @Inheritance
    • Strategie dziedziczenia InheritanceType
      1. TABLE_PER_CLASS
      2. JOINED
        1. @PrimaryKeyJoinColumn
      3. SINGLE_TABLE
        1. @DiscriminatorColumn
        2. @DiscriminatorValue
    • Konsekwencje wydajnościowe
    • Wyłączenie dziedziczenia ze schematu
      1. @MappedSuperclass
        1. @AttributeOverride, @AttributeOverrides
        2. @AssociationOverride, @AssociationOverrides
  4. Obiektowy język zapytań JPQL
    • Wykonywanie zapytań
      1. EntityManager
      2. Query
      3. TypedQuery<T> (od JPA 2.0 - JEE6)
      4. Zapytania zmiany danych
      5. Zapytania z wynikiem
      6. Ograniczanie wyników zapytania
      7. Zapytania parametryzowane
    • Składnia JPQL
      1. Podstawowe klauzule zapytania
      2. Operatory
      3. Funkcje
      4. Wyrażenia czasu
        1. Bieżący czas
          1. CURRENT_DATE
          2. CURRENT_TIME
          3. CURRENT_TIMESTAMP
        2. Literały czasu (od JPA 2.0 - JEE6)
      5. Zapytania polimorficzne
      6. Zapytania zagnieżdżone
      7. Złączanie tabel
      8. Obiekty transferowe - SELECT new
      9. Sprawdzanie typu obiektu
        1. Sprawdzenie class
        2. TYPE (od JPA 2.0 - JEE6)
      10. Instrukcje warunkowe (od JPA 2.0 - JEE6)
        1. NULLIF
        2. COALESCE
        3. CASE
      11. Kolekcje w JPQL (od JPA 2.0 - JEE6)
        1. Kolekcje w operatorze IN
        2. Kolejność w kolekcji - INDEX
        3. Odwołania do map
          1. KEY
          2. VALUE
          3. ENTRY
    • Zapytania nazwane
      1. Definiowanie
        1. @NamedQuery
        2. @NamedQueries
        3. @QueryHint
      2. Użycie
      3. Zalety
  5. Zapytania natywne
    • Tworzenie zapytań natywnych
    • Wyniki skalarne
    • Nazwane zapytana natywne
      1. @NamedNativeQuery
      2. @NamedNativeQueries
    • Mapowanie wyników skalarnych
      1. @SqlResultSetMappings
      2. @SqlResultSetMapping
        1. @ColumnResult
        2. @EntityResult
          1. @FieldResult
    • Problemy
  6. Definiowanie schematu bazy danych
    • Typy
      1. @Lob
      2. @Enumerated
      3. @Temporal
      4. @Transient
      5. @Version
    • Kolumny
      1. @Basic
      2. @Column
    • Automatyczne generowanie kluczy
      1. @GeneratedValue
      2. GenerationType
        1. AUTO
        2. IDENTITY
        3. SEQUENCE
          1. @SequenceGenerator
        4. TABLE
          1. @TableGenerator
    • Klucze złożone
      1. Definiowanie kluczy złożonych
        1. @IdClass
          1. @Id
        2. @EmbeddedId
          1. @Embeddable
          2. @AttributeOverride
          3. @AttributeOverrides
          4. @MapsId (od JPA 2.0 - JEE6)
      2. Wyszukiwanie po kluczach złożonych
    • Tabele
      1. @Table
        1. @UniqueConstraint
      2. @JoinTable
        1. @JoinColumn
      3. @JoinColumns
      4. @SecondaryTable, @SecondaryTables
        1. @PrimaryKeyJoinColumn
      5. @PrimaryKeyJoinColumns
      6. @CollectionTable (od JSF 2.0 - JEE6)
  7. Nasłuchiwanie zmian
    • Metody Callback
      1. @PrePersist, @PostPersist
      2. @PreUpdate, @PostUpdate
      3. @PreRemove, @PostRemove
      4. @PostLoad
    • Definiowanie kolejki słuchaczy
      1. W XML
      2. W kodzie
        1. @EntityListeners
        2. @ExcludeDefaultListeners
        3. @ExcludeSuperclassListeners
  8. Walidacja danych - Bean Validation (JEE6)
    • Reguły w modelu
    • Wbudowane reguły walidacji
      1. @AssertTrue, @AssertFalse
      2. @Min, @Max
      3. @DecimalMin, @DecimalMax
      4. @Digits
      5. @Size
      6. @Pattern
      7. @Null, @NotNull
      8. @Past, @Future
    • Cross Field Validation - walidacja względna
    • Grupy ograniczeń
      1. Grupa domyślna
      2. Własne grupy
      3. Hierarchia grup
      4. Sekwencje grup @GroupSequence
        1. Własna grupa domyślna dla klasy
    • Walidacja w API
      1. Różne środowiska wykonania
        1. Użycie w JPA
        2. Użycie w JSF
        3. Użycie w kontenerze
        4. Użycie poza kontenerem
      2. Zakresy walidacji
        1. Klasa
        2. Atrybut
        3. Wartość dla atrybutu
        4. Grupa
      3. Wynik błędu
        1. Klasa ConstraintViolation
        2. Komunikaty błędów
          1. W ograniczeniach
          2. Internacjonalizacja komunikatów
          3. Nadpisanie komunikatów domyślnych
          4. Komunikaty a JSF
      4. Walidacja struktur obiektów
        1. Walidacja kolekcji i tablic
        2. Walidacja obiektów powiązanych (@Valid)
        3. Grupa domyślna a struktury obiektów
    • Tworzenie własnych ograniczeń
      1. Podstawy tworzenia adnotacji
      2. Własne ograniczenia
        1. Własne adnotacje ograniczeń
        2. Własny walidator (ConstraintValidator)
      3. Ograniczenia wielokrotne
        1. Lista tych samych ograniczeń
        2. Ograniczenia zagregowane
          1. Ograniczenia na ograniczeniach
          2. @ReportAsSingleViolation
          3. @OverridesAtribute
  9. Zaawansowane API JPA 2
    • Integracja z BeanValidation
      1. Walidacja a relacje JPA
      2. Obsługa błędów walidacji - ConstraintViolationException
      3. Zmiana domyślnych opcji walidacji
        1. W persistance.xlm
        2. Przez Persistence
      4. JPA a grupy walidacji
        1. Walidacja a cykl życia
        2. Wiązanie grup z cyklem życia
    • Blokowanie pesymistyczne
      1. EntityManager (lock, find, refresh)
      2. LockModeType
      3. Query (setLockMode)
    • Wskazówki zapytania - hints
      1. EntityManager (find, refresh)
      2. Query (setHint)
    • Cache drugiego poziomu
      1. EntityManagerFactory.getCache
      2. Cache
      3. @Cacheable
      4. Konfiguracja w persistance.xml
    • Criteria API
      1. CriteriaBuilder
      2. CriteriaQuery
      3. Root<T>
      4. ParameterExpression
      5. Join
      6. Subquery
      7. AbstractQuery
    • Mocne typowanie (metamodel)
      1. Podstawy API metamodelu
      2. Odwołanie przez metamodel w zapytaniach
      3. Metamodel kanoniczny
        1. Po co?
        2. Generowanie
        3. Reguły nazewnictwa
      4. Metamodel kanoniczny w zapytaniach

simple-steps.pl, simplesteps.pl są własnością SIMPLE Podbielski Michał