This training is to be held in english! Targetgroup are Developers with at least one year experience in JPA. Biography of speaker Vlad MihalceaVlad Mihalcea is a Java Champion, CEO of Hypersistence, working as a Developer Advocate for the Hibernate project. He is passionate about enterprise systems, data access frameworks, and distributed systems. He wrote hundreds of articles about Hibernate on his blog, and he has a gold badge for the Hibernate, Java, and JPA tags on StackOverflow. He’s also the author of the High-Performance Java Persistence book.The course agenda (TOC):Day 1Introduction- O/R Mismatch- JPA vs Hibernate- Schema ownership and incremental migrations- Integration testing strategiesHibernate Connection Management- Connection Providers- Connection Monitoring- Statement Logging and count validator Basic Mappings- Types- Entity- Embedded- JPA Identifiers- Legacy and enhanced identifier generators (hilo, pooled-lo) Relationships- Many-to-One- One-to-One- One-to-Many- Many-to-Many- Embedded CollectionsDay 2Inheritance- Single table inheritance caveats- Joined table inheritance caveats- Composition vs inheritance Entity state transitions- Flushing basics- AUTO flush caveats- Dirty checking- Flush operation order- Bytecode enhancement dirty checking Batch updates and ResultSet fetching- JDBC batching- How to batch INSERT and UPDATE statements- How to batch DELETE statements Fetching- Natural key- DTO projections- Entity queries- LAZY vs EAGER- Query-time fetching Day 3Concurrency control- Isolation levels and database concurrency control- Preventing lost updates in long conversations- Logical vs physical clock optimistic locking- Hibernate collections optimistic locking- Version-less optimistic locking- Java Persistence locking – Explicit OPTIMISTIC Lock Mode – OPTIMISTIC_FORCE_INCREMENT Lock Mode – PESSIMISTIC_FORCE_INCREMENT Lock Mode – PESSIMISTIC_READ and PESSIMISTIC_WRITE Lock ModesCaching- Database caching- Application caching- Second-level cache entries- Cache synchronization strategies- READ_ONLY CacheConcurrencyStrategy- NONSTRICT_READ_WRITE CacheConcurrencyStrategy- READ_WRITE CacheConcurrencyStrategy- TRANSACTIONAL CacheConcurrencyStrategy- Collection Cache- Query Cache
Getting the best performance out of your Java applications can often be a challenge due to the managed environment nature of the JVM and the non-deterministic behaviour that this introduces. This session will start by looking at what we mean by speed and how the JVM, whilst extremely powerful, means we don’t always get the performance characteristics we want. We’ll then move on to discuss the three key features of the Zing JVM that address these issues: The Falcon JIT compiler that leverages the LLVM open source project to provide optimisations specific to the newest CPU architectures using features like AVX2. ReadyNow, which allows details of speculative optimisations and JIT profiling to be logged on production systems. ReadyNow! profiles can then be used to substantially reduce the warm up and deoptimisation issues that affect performance when restarting an application. The C4 garbage collector, which eliminates GC pauses that affect the performance of an application even after all hot code paths have been compiled and optimised.