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).



Agenda

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
  • Lazy-loading
  • Merge
  • 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.



Prerequisites

  • 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.



Preparation

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:

https://github.com/victorrentea/jpa-assignment/


Technical Requirements

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.



Course Curriculum

Trainer: Victor Rentea

Victor Rentea is a Java Champion, Associate Professor and Technical Trainer writing code for over two decades in many languages.

He is training developers since 2012, having developed an extensive curriculum that covers most of the software engineering best practices and typical Java-stack development. By now he trained over 2000 developers in 40+ companies, and you can read dozens of their recommendations on LinkedInFacebook, and on victorrentea.ro.

Victor is best known for the energy of his talks, many ranked among the best 3 at their conference. You can expect a similar style for any training he gives while explaining complex concepts in simple, easy to remember terms. If you want to keep close, you can join the Software Craftsmanship Community he founded in Romania or follow him on LinkedIN, Twitter, or Facebook.

Choose a Pricing Option

Frequently Asked Questions


Can I get an invoice for my company (VAT-free)?

To add the VAT code of your company to the checkout page and remove the VAT taxes, follow these simple steps.

Can I ask questions after I watch the recording?

PLEASE DO! Email me your questions, no matter how silly or complex you may think they are. I'd be glad to help, so don't hesitate to contact me.


How long do I have access to the course?

How does lifetime access sound? After enrolling, you have unlimited access to this course for as long as you like - across any and all devices you own.


What if I am unhappy with the course?

We would never want you to be unhappy! If you are unsatisfied with your purchase, contact us in the first 30 days and we will give you a full refund.


Can I have this training for more of my colleagues?

There are two ways I can help you:

  • For 5+ developers, contact me for a discount and a company invoice
  • For 10+ developers or for a longer in-depth session, contact me for a dedicated webinar for your company.