High-Performance Java Persistence – Chapter 10 – Mapping Types and Identifiers

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 10

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 the core mapping elements used by Hibernate and details the basic type and the identifier generators.

10. Mapping Types and Identifiers 
10.1 Types
10.1.1 Primitive types
10.1.2 String types 
10.1.3 Date and Time types
10.1.4 Numeric types
10.1.5 Binary types 
10.1.6 UUID types 
10.1.7 Other types
10.1.8 Custom types 
10.2 Identifiers
10.2.1 UUID identifiers 
10.2.1.1 The assigned generator 
10.2.2 The legacy UUID generator
10.2.2.1 The newer UUID generator 
10.2.3 Numerical identifiers
10.2.3.1 Identity generator 
10.2.3.2 Sequence generator 
10.2.3.3 Table generator
10.2.3.4 Optimizers 
10.2.3.4.1 The hi/lo algorithm
10.2.3.4.2 The default sequence identifier generator
10.2.3.4.3 The default table identifier generator 
10.2.3.4.4 The pooled optimizer 
10.2.3.4.5 The pooled-lo optimizer
10.2.3.5 Optimizer gain 
10.2.3.5.1 Sequence generator performance gain
10.2.3.5.2 Table generator performance gain 
10.2.3.6 Identifier generator performance 

Chapter summary

The chapter explains the relationship between the three mapping elements used by JPA: basic types, embeddables, and entities.

Because database systems come with specific data types that are targeted towards high-performance, this chapter covers basic types and explains how you can map database-specific types to Hibernate entities.

The second part of this chapter is dedicated to entity identifiers. It covers UUID and numerical identifiers and it goes through identity, sequence and table generator strategies.
It explains how the enhanced generators differ from the legacy ones, and it covers all major sequence identifier optimizes: hi/lo, pooled and pooled-lo.

In the end, it shows which identifier generator is suitable for high-performance write-intensive applications, and why you should use the enhanced optimizers developed by Hibernate.

Transactions and Concurrency Control eBook

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.