More than half of the Java projects today are persisting their data using JPA, commonly using Hibernate as the implementing library. One could say that the Spring/Hibernate combo has become the standard stack of modern Java backend applications.
The training sessions I run worldwide showed me that despite its widespread use, most developers are unaware of the exact behavior of Hibernate, nor do they realize the alternatives they have in the design of their entities. Writing projects without mastering their ORM leads to unexpected performance issues, or (even worse) to an anemic, weak domain model closely coupled to the database schema structure.
This training covers the fundamentals of ORM modeling and the essential runtime behavior that you need to understand when working with your entities.
⚠️ If you cannot attend the live webinar, the recording will remain available to you for lifetime, but I will kindly ask you to email me all the questions you have after watching the recording.
This 3.5 hours live webinar will take place on July 1th, 2022, between 14:00 - 17:30 Bucharest time (click here to convert it to your timezone).
Object-Relational Mapping Best Practices (2 hours)
- Basic Fields and Enums
- Custom Hibernate Type Mappers
- Strategies to store large objects
- Mapping Relations
- Polymorphic Entities
- Mastering Embeddables
ORM Runtime (1.5+ hours)
- Entity Lifecycle
- Id generation techniques (with pitfalls)
- Cascading and orphanRemoval
Concurrency control with optimistic locking
What to expect?
The training follows the agenda using a series of experiments to observe the runtime behavior, design alternatives, and pitfalls. There will be code on the screen for more than 80% of the time. The slides are crafted so they can be later used as a reference and are packed with links that allow you to further research the topics you need.
After following this workshop you will:
- Be able to use different modeling techniques with JPA
- Understand the exact lifecycle of your entities
- Master advanced features of JPA and Hibernate to ease your development
The discussion will be very interactive and entertaining, so be prepared to ask as many questions as you can.
After the live session ends 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). If you encounter any issues, please don't hesitate to contact me.
This Training is for you because ...
- You are using JPA on your project but you feel you don't really understand what happens under the hood.
- You want to explore alternative modeling options for your domain entities.
- You want to write efficient and elegant code with Hibernate.
- Practical experience with Hibernate/JPA is recommended.
- Understanding how transactions work with Spring and Hibernate - one option is to follow my other video course on Teachable Transactions in Spring.
To maximize your learning, it is recommended to (try to) solve the following exercise in advance, before the start of the webinar. In essence, your task would be to add all necessary JPA annotations to make an entity model persistable by Hibernate:
The webinar will take place on Zoom, so for the best experience please have the app installed on your machine. To enjoy crystal-clear audio, make sure you use a wired internet connection (Ethernet) and avoid connecting over a VPN.
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.