- 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 Java Persistence / EJB 3
- Use the new Hibernate annotations to do OR mapping
Hands-On
50% hands-on, 50% lecture
Supported Platforms
Java 5, Java 6, Eclipse, IntelliJ IDEA, other major platforms
Java Training Course Duration
3 Days
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: Advanced Topics
- Components and Multi-Table Mapping
- equals() and hashCode()
- Caching and Efficiency
- Design Considerations