More than half of the Java projects today are storing their data using JPA (link).
Despite this huge popularity most developers never really dive deep into the best practices and pitfalls of Hibernate. But that’s OK. Until you face performance issues. Only then do you realize that the complexity of an ORM exceeds that of any other mainstream framework, Spring included. And so, 1 year (or more) after the project started, you have to really start learning thoroughly the mechanics of JPA, in order to locate and fix the bottleneck.
But perhaps your journey is not that dramatic. Perhaps you just want to master the lightsaber (JPA) that you have on your project, without cutting any living tissue in the process🥩. If you want to fine-tune your JPA skills, please be welcomed, along with any questions you might have.
⚠ If you cannot attend the live webinar, please make sure you email me all your questions after watching the recording.
This training is for developers with prior practical experience with JPA/Hibernate, ideally in real-world projects. If you never persisted or queried an Entity to a database, this training is probably NOT suited for you - please check out other online training resources for the basics (pluralsight, coursera, udemy...).
This 3.5 hours live-webinar will take place on Jan 18th 2022, between 14:00 - 17:30 Bucharest time (click here to convert it to your timezone)
- Lazy-loading and its perils
- The best way to fix the N+1 queries problem
- Paginated Queries and the driving-query technique
- Selecting DTOs with JPQL
- Wrapping native queries with Entity-view or @Subselect
- Fetch Graphs and Spring Projections
- Tuning fetch_size
- Streaming Queries
- Designing entities for best performance
- Using 2nd Level Cache for static data
- 5 styles to write dynamic queries
What to expect?
The training is 80% live-coding, experimenting, discussing alternative approaches, and optimizing our queries by inspecting the executed SQL statements. We will also have a handful of unit tests that we’ll aim to keep green as we tune the performance. Any complex concept we face will be captured in high-density slides that you can later use for reference, packed with links to make it easier to further research any idea you find interesting.
After following this workshop you’ll acquire solid knowledge about the mainstream best practices of using JPA to read data, understand the behavior of Hibernate, and learn to avoid many common performance pitfalls.
After the purchase you will get: the video recording, all the slides, and the code zipped together with Git commit history. Starting from the commits we’ll leave behind, you will be able to re-do and further explore any step of our journey (the best learning happens this way). The unit tests we have in place will make it very easy for you to run the code on your machine. If you encounter any issues, please don't hesitate to contact me.
This Training is for you because:
- You are working with JPA on your project but it intrigues you, as its behavior often surprised you
- You suspect JPA causes performance issues while reading data on your project
- You want to write efficient and elegant code with Hibernate.
- Practical experience with Hibernate/JPA is highly recommended.
- (ideally) previous contact with tuning Hibernate performance
The webinar will take place on Zoom, so for best experience please have the app installed on your machine. For high-quality audio, please use a wired internet connection.
To perform the exercises yourself, you will need a Java 11+ SDK installed (latest Oracle JDK will do), a decent IDE, and access to GitHub and Maven Central.