Introduction to Hibernate
- Issues with
Persistence layers and Object-Relational Mapping (ORM)
- Hibernate
Overview and Benefits
- Hibernate
architecture overview
- POJO (Plain
Old Java Object) Based Mapping
Getting started with Hibernate quickly
- Overview of
the Hibernate distribution
- Configuring
Hibernate
- hibernate.cfg.xml
file
- SessionFactory
configuration
- Connection
properties, Database dialect
- Configuration
class, Session Interface
- "Hello
World" Program for Hibernate
- Mapping a
Class
- Persistent
Entity Class, Hibernate Mapping
- File,
Mapping the Entity Class
- Primary
keys: Id property, Generated Id
- Hibernate
Type System
- Working with
sessions and Persistent Objects
- Logging -
log4j Overview and configuration for Hibernate
Querying
- Inserting
and Updating Entities
- HQL -
Hibernate Query Language Overview
- The Query
Interface
- Creating and
working with queries
- Named
Queries, Projection Queries, Aggregate Queries
The Persistence Lifecycle
- Transaction
Overview and Transactions in Hibernate
- Hibernate
Transaction API (in Managed and Non-managed Environments)
- The
lifecycle of managed objects
- Persistent,
transient, and detached objects
- The
Persistence (Session) Context (Lifespan, Relation to Managed Objects,
Propagation)
- Contextual
Sessions
- Synchronization
to the Database
- The Session
as cache
Optimistic Locking / Versioning
- Detached
Objects and Optimistic Locking
- Versioning
overview and Using Versioning
- Locking
Objects
Relationships
- Object
Relationship Overview
- Mapping
Collections of Value Objects
- Entity
Relationships: 1-N, N-1, N-N, 1-1
- Mapping
Entity Relationships
- Uni and
Bi-directional Relationships
- The Relationship
"inverse"
- Cascading
Over Relationships
- Queries
Across Relationships (Lazy and Eager)
Inheritance Mapping
- Entity
Inheritance with Hibernate
- Table-per-class
mapping
- Table per
Subclass mapping
- Table per
Concrete Class mapping
Additional Querying Capabilities
- Projection
Queries, Aggregate queries
- Bulk updates
and deletes
- Native SQL
Queries
- Query
Filters
The Criteria API
- Overview of
the Criteria API
- Working
Querying with the Criteria API
- Query by
Example
Hibernate and Java Persistence / EJB 3
- Overview of
Java Persistence / EJB 3
- Relationship
between Java Persistence and Hibernate
- Overview of
Annotations
- Mapping
Entities with Hibernate Annotations
- The
EntityManager, Persistence Context and Persistence Unit
- Working with
Transactions - EntityTransaction, Managed, and Unmanaged Environments
- Inserts and
Updates
- JPQL - Java
Persistence Query Language
- Versioning
- Relationships
Advanced Topics
- Components
and Multi-Table Mapping
- equals() and
hashCode()
- Caching and
Efficiency
- Design
Considerations