Consulting Training Blog Careers About Us Contact Us
All Classes Will Be Held Virtually – Live Online Intertech's Training Division has been successfully instructing professionals through virtual live online training since the advent of the smartboard. It is a proven form and offers the convenience of live questions, group interaction, and labs with an instructor looking over your shoulder. Because of this, we will continue all classes live but virtually, including Agile and Scrum instruction, so businesses and individual’s seeking professional development can keep moving forward during these unexpected times.

Complete Hibernate and Java Persistence API Training

Course ID: INT2438
Duration: 5 Days

Upcoming Classes

Click the Get Notified button for priority notification when a class is next scheduled.

Get Notified

On Site/Private

Can't find a class that fits right for you? Contact us to inquire about scheduling your own private class

Contact Us


Intertech's Complete Hibernate and JPA course teaches students the Java specification for persisting objects to the database.  It does so through Hibernate - the most popular JPA implementation and object-relational mapping framework for Java environments.  Object relational mapping in large enterprise applications is difficult.  The task is so difficult that the problem of storing and retrieving objects to a relational database has its own name - impedance mismatch.

In this class, students learn object-relational mapping concepts and the various issues and options available in Java to address object persistence.  With these fundamentals, the course then explores the basics of JPA/Hibernate object persistence and configuration.  It also digs into the details of mapping, queries, transactions, and concurrency.

Not just a class that focuses on theory, this course is loaded with practical labs and deals with maintenance and performance issues.  After taking this class, developers will be able to build faster, more flexible and easier to maintain application persistence layers and overcome impedance mismatch with JPA implementations like the Hibernate framework.

Bring This Course To You

For groups of 5 or more, let Intertech bring this course to your location. Customized versions tailored towards your objectives are also available.

Learn More

Learning Objectives

  • Understand the challenges of mapping objects to relational databases
  • Learn the architecture of Hibernate and JPA
  • Know how to setup and configure Hibernate and/or JPA for a Java project
  • Learn to map Java classes and object associations to relational database tables with JPA and Hibernate annotations
  • Learn to map Java classes and object associations to relational database tables with Hibernate or JPA XML mapping files
  • Study strategies for mapping Java inheritance trees to relational database tables
  • Learn the Hibernate Query Language, Java Persistence Query Language and Criteria for retrieving Java objects
  • Explore how to manage database transactions
  • Look at optimistic and pessimistic concurrency options provided by Hibernate and JPA


This class is designed for Java programmers with a need to understand the Java persistence provided by Hibernate or JPA framework and API.


Students should have a good understanding of the Java programming language.  A basic understanding of relational databases and SQL is very helpful.

Course Outline

Object Persistence

  • Persistence
  • Object Persistence
  • Object/Relational Paradigms
  • Impedance Mismatch
  • Object Relational Mapping (ORM)
  • Hibernate
  • Why an ORM framework? Why Hibernate?
  • Java Persistence API (JPA)
  • Hibernate Projects
  • Java ORM/Persistent Frameworks


  • A Quick Hibernate Example
  • Hibernate Architecture and API
  • Hibernate Installation/Setup
  • Configuration
  • Configuration Properties
  • Mapping Files


  • A Quick JPA Example
  • JPA Architecture and API
  • Hibernate Installation/Setup with JPA
  • Persistence Configuration
  • Mapped Entities and Mapping Files

Entity Mapping by Annotation

  • Persistent Classes
  • POJOs
  • JavaBeans
  • Annotation Metadata
  • Annotation Configuration
  • Basic Entity Mapping via Annotations
  • Basic Property Mapping via Annotation
  • ID Mapping via Annotation
  • Composite Keys (and Natural Keys)
  • Access Type
  • Hibernate Mapping Annotations

Entity Mapping by XML

  • XML Metadata
  • XML vs. Annotatin - Pros/Cons
  • Hibernate XML Metadata Basics
  • JPA XML Metadata Basics
  • Basic Entity Mapping via XML
  • Basic Property Mapping via XML
  • Hibernate Types
  • ID Mapping via XML
  • Identifier Exposure
  • Access Type

Persistence Context

  • Entity Lifecycle
  • New or Transient State
  • Managed or Persistent State
  • Entity Updates and Automatic Dirty Checking
  • Flushing
  • Detached State
  • Detached State - Why?
  • Remove/Delete
  • Object Identifiers Revisited
  • Detached & Merge Revisited
  • Refresh

Embeddables and Components

  • Domain Model
  • Entities and Values
  • Embeddables and Components
  • Embeddable by Annotation
  • JPA Embeddable by XML
  • Hibernate Component by XML
  • Component Bidirectional Association
  • Issues and Warnings for Embeddables/Components
  • Embeddable Composite Id
  • Purpose of Embeddables/Components

Entity Associations

  • Many-to-one
  • Many-to-One by Annotation
  • Many-to-One by XML mapping
  • Bidirectional Many-to-One
  • Bidirectional Many-to-One by Annotation
  • Bidirectional Many-to-One by XML
  • Other Collection Types
  • Many-to-One List
  • Many-to-One Bag
  • Many-to-One Map

More Associations

  • One-to-one
  • One-to-one by Annotation
  • One-to-one by XML
  • Bidirectional One-to-One
  • Bidirectional One-to-One by Annotation
  • Bidirectional One-to-One by XML
  • Many-to-many
  • Many-to-many by Annotation
  • Many-to-many by XML
  • Bidirectional Many-to-Many
  • Bidirectional Many-to-Many with Annotations
  • Bidirectional Many-to-Many with XML

Value Type Collections

  • Collections of Value Types
  • Collections of Embeddables/Components


  • Inheritance Mapping Strategies
  • Table per Hierarchy
  • Table per Subclass
  • Table per Concrete Class
  • Table per Concrete Class with Mapped Superclass
  • Inheritance Mapping Pros/Cons
  • Polymorphism
  • Table per Concrete Class with Unions
  • Choosing an Inheritance Strategy


  • Cascading/Transitive Persistence
  • Lazy Loading
  • Proxies
  • Eager Loading
  • What's a Proxy?
  • Detached Objects and Proxies
  • Polymorphic Associations Revisited


  • Persistent Object Fetching Options
  • Hibernate Query
  • HQL
  • HQL Parameters
  • JPA Query and JPQL
  • Named Queries
  • Native SQL


  • Criteria
  • Criteria Select
  • Criteria Inner/Outer Joins
  • Criteria Parameters
  • Criteria Where
  • Criteria Order
  • Metamodel
  • Pagination and Query Hints
  • Hibernate Scrolling
  • Query Option Pros/Cons

Transactions and Concurrency

  • The Java Transaction
  • Hibernate Transaction Configuration
  • Hibernate Transaction API
  • JPA Transaction Configuration
  • JPA Transaction API
  • Optimistic Locking
  • Versioning
  • Hibernate Optimistic Locking without Versioning
  • Pessimistic Locking API

Free Resources from Intertech

Free On-Demand Video Bundle: IoT, Agile/Scrum, and Leadership

Free WhitePaper: Complete Guide to a Developer Job Search

Free eBook: Top Freeware Picks for Developers