Total Hibernate
This course will give you skills needed to tackle complex ORM applications with Hibernate. Starting with the basics you'll progress towards mastering the topics that can make or break enterprise applications using Hibernate. This course starts with an introduction to Object-Relation Mapping (ORM) and when and why to use these technologies. Hibernate is introduced in the context of a realistic domain model to be mapped to a relational database. The course progresses by taking a hands on approach to learn the how to solve the different scenarios that are typically presented to enterprise developers using ORM technologies. Days 2 and 3 cover intermediate and advanced topics that should take you to next level of productivity when using Hibernate.
Session Agenda
Sessions begin at 9AM and end at 5PM. Attendees must bring their own laptop.
Day 1
- Introduction to ORM with Hibernate
- Object-Relational Mapping
- Hibernate Core Concepts
- Hibernate Architecture
- Overview of the Persistence Lifecycle
- Hibernate Mappings
- Configuring Hibernate
- Working with Persistent Objects
- Object Identity, the importance of equals() and hashcode()
- Simple Relationships
- Unidirectional and Bidirectional Relationships
- Working with Collections
- Introduction to HQL – The Hibernate Query Language
Day 2
- Intermediate Hibernate
- Mapping Inheritance Hierarchies
- Working with Hibernate Transactions
- Using Hibernate Types and Creating Custom Types
- Optimistic and Pessimistic Locking
- ID generation strategies
- Hibernate Restrictions, Windowing Results, Sorting, Grouping, Aggregates and Projections
- Query by Criteria
- Query by Example
- Advanced Querying: Named Queries Grouping, Subqueries, Native SQL
- Overview of supporting tools for Hibernate development
Day 3
- Advanced Hibernate
- Working with Isolation Levels
- Query Optimization
- Bulk Operations
- Store Procedures and Functions
- Hibernate Caching Architecture
- EHCache and JBossCache
- Schema Design for ORM
- Dealing with Legacy Schemas
- Designing Effective DAOs
- Avoiding Anemic Domain Models
- Hibernate and EJB3
- Using Domain Object in the Web Tier
- Session Strategies and Hibernate
- Testing Hibernate with JUnit and DBUnit