- Understand the benefits of Hibernate
- Understand the Hibernate architecture
- Create Hibernate based applications
- Understand and use Hibernate mapping to map persistent objects to the database
- Understand and work with collections & associations
- Value and Entity Types
- Bidrectional and unidirectional
- 1-1, 1-N, N-N
- Use Hibernate's versioning support
- Map inheritance hierarchies using Hibernate
- Work with Hibernate queries, HQL, and Criteria
- Performance tune your Hibernate applications
- Understand Hibernate transaction support
- Understand the relationship between Hibernate and the Java Persistence API (JPA)
- Use the JPA annotations to do OR mapping
- Configure second level caching
- Integrate Hibernate with Java Web Apps and EJB
- Integrate Hibernate and Spring
Hands-On
50% hands-on, 50% lecture
Supported Platforms
Java 5, 6, and 7, Eclipse, IBM RAD, other major platforms
Java Training Course Duration
3 days - 4 days (with Spring integration)
Java Training Course outline
Session 1: Introduction to Hibernate
- Issues with Persistence layers and Object-Relational Mapping (ORM)
- Hibernate Overview and Benefits
- Hibernate architecture overview
- Configuring Hibernate
- hibernate.cfg.xml file, Connection properties, Database dialect
- SessionFactory, Configuration, and Session
- 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: hibernate.show_sql, log4j Overview and configuration for Hibernate
Session 2: Updates and Queries
- Inserting, Updating, and Deleting Entities
- HQL - Hibernate Query Language Overview
- The Query Interface
- Creating and working with queries
- Named Queries, Projection Queries, Aggregate Queries
Session 3: 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
Session 4: 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
Session 5: 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
Session 6: Hibernate and Java Persistence / EJB 3
- Overview of Java Persistence / EJB 3
- Relationship between Java Persistence and Hibernate
- Mapping Entities with JPA 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
Session 7: Caching
- Understand caching advantages and behavior
- The persistence context as first level cache
- The Second Level Cache
- Entity and Collection Caching
Session 8: Integration Considerations
- Data Access Objects
- Integrating Hibernate and Java Web Apps
- Open Session in View Pattern
- Hibernate / EJB-JPA Integration
Session 9: Additional Topics
- Components and Multi-Table Mapping
- equals() and hashCode()
- Design Considerations
- Hibernate Toolset
Session 10: Hibernate and Spring Integration
- Spring Introduction
- Dependency Injection Overview
- Spring's Hibernate Support
- Spring Transaction Management