In this chapter, we will take an in-depth look at sessions and entities and their lifecycles. It is important to understand the concepts of session and entity when we talk about design concepts, such as session-per-request, session-per-conversation, stateless sessions, and contextual sessions, and discuss the various states of an entity. After all, the only way to master anything is by paying attention to the details. We also explore entities beyond their JPA characteristics and look at Hibernate entities to see the benefits of one over the other. Furthermore, we discuss proxy objects and how they are used.
In this chapter, we will cover the following topics:
Why this book?
Quick Hibernate
Hibernate session:
Session internals
Contextual sessions
Sessions per request, per conversation, and per operation
Stateless sessions
Hibernate entities:
Entity lifecycle
Types of entities
Identity crisis
Beyond JPA
Proxy objects
Batch processing:
Manual batch management
Setting the size of the batch
Using a stateless session