1. Understanding object/relational persistence.
1.1 What is persistence?
1.2 The Paradigm mismatch
1.3 Persistence layers and alternatives
1.4 Object/relational mapping
2. Mapping persistent classes
2.1 Understanding entity
2.2 Mapping entities with identity
2.3 Class mapping options
2.4 Fine-grained model and mapping
3. Inheritance and custom types
3.1 Mapping class inheritance
3.2 The hibernate type system
3.3 Creating custom mapping types
4. Mapping collections and entity associations
4.1 Set, bags, lists and maps of value type
4.2 Collections of components
4.3 Mapping collections with annotations
4.4 Mapping a parent/children relationship
5. Advanced entity association mapping
5.1 Single valued entity association
5.2 Many valued entity association
5.3 Polymorphic associations
6. Working with Objects
6.1 The persistence lifecycle
6.2 Object identity and equality
6.3 The hibernate interface
6.4 The Java Persistence API
7. Transactions and Concurrency
7.1 Transaction essentials
7.2 Controlling concurrent access
7.3 Non Transactional data access
8. Implementing conversations
9. Modifying objects efficiently
9.1 Transitive persistence
9.2 Bulk and batch operations
9.3 Data filtering and interception
10. Optimizing fetching and caching
10.1 Defining the global fetch plan
10.2 Selecting a fetch strategy
10.3 Caching fundamentals
10.4 Caching in practice
11. Querying with HQL and JPA QL