- Leren door doen
- Trainers met praktijkervaring
- Klassikale trainingen
- Gedetailleerd cursusmateriaal
- Duidelijke inhoudsbeschrijving
- Maatwerk inhoud mogelijk
- Trainingen die doorgaan
- Kleine groepen
In de cursus Spring Data JPA wordt ingegaan op de krachtige abstractie Spring Data JPA bovenop het object relational mapping framework Hibernate/JPA, waarmee database interacties en query uitvoering in Spring applicaties worden vereenvoudigd.
De cursus begint met een introductie in Java Persistence. Onderwerpen zoals JDBC, SQL, drivers, databaseconfiguratie en Object Relational Mapping worden behandeld. Er wordt ingezoomd op de Java Persistence API (JPA), het gebruik van de Entity Manager, Persistence Units en het mappen van entiteiten. Tot slot worden verschillende JPA-implementaties besproken, waaronder EclipseLink en Hibernate.
In deze module leren deelnemers wat Spring Data is en hoe Spring Data JPA werkt. Er wordt aandacht besteed aan configuratie via property-bestanden, mapping van tabellen en kolommen, en het gebruik van primaire sleutels. Annotaties zoals @Id en @GeneratedValue komen aan bod, evenals het opzetten van relaties tussen entiteiten met One-to-One, One-to-Many, Many-to-One en Many-to-Many.
Deze module behandelt het implementeren van CRUD-operaties met behulp van JpaRepository en CrudRepository. Onderwerpen zijn onder andere Cascade Types, fetchstrategieën (EAGER vs LAZY), transactioneel gedrag via @Transactional en het gebruik van PagingAndSortingRepository.
Deelnemers leren hoe ze data kunnen opvragen met querymethoden en naamgevingsconventies zoals findBy en countBy. Zowel JPQL-queries als native queries worden behandeld. Er wordt ook gekeken naar het gebruik van annotaties zoals @Query en @Modifying en hoe custom queries worden opgebouwd.
Deze module richt zich op de levenscyclus van entiteiten in JPA. Er wordt aandacht besteed aan methoden voor opslaan en verwijderen, annotaties zoals @PrePersist en @PostLoad, flush-modi, caching, en transactionele afhandeling inclusief Optimistic Locking en de @Version-annotatie.
Deelnemers leren hoe paginering en sortering geïmplementeerd kunnen worden met interfaces zoals Page, Slice en PageRequest. Ook het sorteren van entiteiten op specifieke attributen komt aan bod, evenals het gebruik van DTO-projecties (open, gesloten en op klassen gebaseerd).
Deze module behandelt cachingstrategieën in combinatie met JPA. Het gebruik van de Spring Cache met annotaties zoals @Cacheable, configuratie van caches, en het optimaliseren van queries met @BatchSize en @EntityGraph komen aan bod.
Deelnemers krijgen inzicht in de ACID-eigenschappen, transactionele configuratie, en propagatie van transacties. Zowel declaratieve als programmatische transacties worden behandeld, evenals het terugdraaien van transacties met de rollBackFor-attribuut.
Tot slot worden geavanceerde onderwerpen behandeld zoals domeinevents, event publishers en listeners, auditing met @EnableJpaAuditing, en het gebruik van @EntityGraph en @NamedEntityGraph voor het optimaliseren van queries.
De cursus Spring Data JPA is bestemd voor Java en Spring Boot developers die relationele databases willen benaderen vanuit Spring Boot applicaties.
Grondige kennis van Java en SQL en basis kennis van Spring en Spring Boot. Ervaring met JPA en Hibernate is bevorderlijk voor de begripsvorming.
Demo sessies onder leiding van de trainer worden afgewisseld met presentaties en praktijk oefeningen.
De deelnemers krijgen na het goed doorlopen van de cursus een certificaat van deelname aan Spring Data JPA.
Module 1: Persistence Intro |
Module 2: Spring Data JPA |
Module 3: CRUD Operations |
Java Persistence JDBC and SQL Drivers and URL's Database Configuration Object Relational Mapping Java Persistence API Entity Manager Persistence Units Mapping Entities JPA Implementations Eclipse Link and Hibernate |
What is Spring Data? Spring Data JPA Property Files Tables and Columns Primary Keys Auto Generation Strategies @Id and @GeneratedValue Persistence Context Defining Relationships One-to-One and One-to-Many Many-to-One and Many-to-Many |
Implementing CRUD Operations @EnableJpaRepositories JpaRepository Cascade Types Fetch Strategies EAGER versus LAZY CrudRepository Transaction Management @Transactional Annotation @Transactional Attributes PagingAndSortingRepository |
Module 4: Querying Data |
Module 5: Entity Lifecycle |
Module 6: Pagination and Sorting |
Query Methods Method Naming Conventions Derived Query Methods findBy and countBy Java Persistence Query Language JPQL Queries @Query Annotation @Modifying Annotation Equality Conditions Custom Queries Native Queries |
Understanding Entity Lifecycle Save Methods Delete Methods @PrePersist Annotation @PostLoad Annotation Flush Modes Caching Second Level Cache Managing Transactions Optimistic Locking @Version Annotation |
Implementing Pagination Pageable and Sort Paginating All Entities Page and Slice Interface PageRequest Class Sorting All Entities Sort Order Typed Sort Returning DTO Projections Open and Closed Projections Class Based Projections |
Module 7: Caching |
Module 8: Transactions |
Module 9: Advanced Topics |
Spring Cache with JPA @Cacheable Annotation First Level Cache Second Level Cache Cache Configuration Storing Results Fetch Strategies Using @BatchSize @EntityGraph Annotation Optimizing Fetch Queries |
ACID Properties Transaction Properties Transaction Propagation Transaction Management Injecting Transaction Manager @EnableTransactionManagement Declarative Transactions Programmatic Transactions Rolling Back Transactions rollBackFor Attribute |
Domain Events Event Publishers Event Listeners @DomainEvents Annotation Auditing in Spring Data JPA @EnableJpaAuditing Annotation AuditingEntityListener Entity Graphs @EntityGraph Annotation @NamedEntityGraph Annotation |