High-Performance Java Persistence – Chapter 12 – Inheritance
Imagine having a tool that can automatically detect JPA and Hibernate performance issues. Wouldn’t that be just awesome?
Well, Hypersistence Optimizer is that tool! And it works with Spring Boot, Spring Framework, Jakarta EE, Java EE, Quarkus, or Play Framework.
So, enjoy spending your time on the things you love rather than fixing performance issues in your production system on a Saturday night!
Part 2, Chapter 12
Every new chapter of my book is released right after it’s being completed, so the reader doesn’t have to wait for the whole part to be finished to get access to new material.
Table of content
This chapter explains JPA inheritance from a data access performance point of view.
12. Inheritance 12.1 Single table 12.2 Join table 12.3 Table-per-class 12.4 Mapped superclass
Chapter summary
Inheritance is undoubtedly the most obvious impedance mismatch between an object-oriented domain model and a relational database schema. This chapter explains the benefits of entity inheritance and its inherent trade-offs.
As a rule of thumb, inheritance should be used with care.
Most often, when polymorphic queries and associations are needed, the choice is between single table and joined table, each one having pluses and minuses. Table-per-class can generate statements that are way too complex, and if entity polymorphism is not needed, the @MappedSuperclass
might be a better alternative anyway.
