Course outline for Hibernate

Pre-requisites for learning Hibernate

Participants are expected to have good knowledge of Java and should be comfortable with relational database concepts

Lab Setup

Eclipse Oxygen Java/JEE Edition with JDK 8


3-4 days

Training Mode

Online training for Hibernate

We provide:

  • Instructor led live training
  • Self-paced learning with access to expert coaches
  • 24x7 access to cloud labs with end to end working examples

All jnaapti sessions are 100% hands-on. All our instructors are engineers by heart. Activities are derived from real-life problems faced by our expert faculty. Self-paced hands-on sessions are delivered via Virtual Coach.

Classroom training for Hibernate

Classroom sessions are conducted in client locations in:

  • Bengaluru
  • Chennai
  • Hyderabad
  • Mumbai
  • Delhi/Gurgaon/NCR

Note: Classroom training is for corporate clients only

Detailed Course Outline for Hibernate

Understanding Relational Database Design

  • Understanding ER design and Object Modeling
  • Comparing relational database design to Object Modeling
  • Types of relationships
  • Database storage structures
  • Need for indexes to increase efficiency
  • Object Relational Mapping
  • Impedance mismatch in OR Mapping
  • Expectations from an ORM framework

Hibernate Architecture

  • SessionFactory
  • Session
  • Transaction
  • Persistent Objects
  • Transient Objects

Getting started with Hibernate

  • Obtaining Hibernate
  • Using Hibernate via Maven
  • Hibernate - Hello World

Persistent Classes

  • A simple POJO example
  • Implementing inheritance
  • Implementing equals() and hashCode()
  • Dynamic models

Basic O/R Mapping

  • Mapping declaration
  • Hibernate types
  • Mapping a class more than once
  • SQL quoted identifiers


  • Value Types
  • Entity Types
  • Custom Types

Collection Mapping

  • Persistent Collections
  • How to map collections
  • Sorted Collections
  • Bidirectional associations

Association Mappings

  • Handling Unidirectional and Bidirectional associations
  • Handling one-to-one, many-to-one, one-to-many and many-to-many relationships
  • Association using Join Tables and without Join Tables

Inheritance Mapping

  • Inheritance Mapping Strategies
    • Table per class hierarchy
    • Table per subclass
    • Table per concrete class
  • Limitations


  • Creating a query
  • Paging results
  • Parameter binding
  • Using positional parameters
  • Executing a query
  • Using database cursors

Working with Objects

  • Hibernate object states
  • Making objects persistent
  • Loading an object
  • Querying
  • Modifying persistent objects
  • Modifying detached objects
  • Automatic state detection
  • Deleting persistent objects
  • Replicating object between two different datastores
  • Flushing the Session
  • Transitive persistence
  • Using metadata


  • Select queries
  • Polymorphic Queries
  • Comparison Expressions
  • Projection
  • Joins
  • Reporting Queries

Criteria Queries

  • Basic criteria queries
  • Narrowing the result set
  • Ordering the results
  • Projections
  • Joins
  • When to use Criteria vs HQL

Native SQL

  • Using SQLQuery
  • Named SQL Queries
  • Custom SQL for create, update and delete
  • Custom SQL for loading

Improving Performance

  • Fetching strategies
  • Second level cache
  • Query Cache
  • Understanding collection performance