Customized Onsite Hibernate & JPA Training Courses

“Wonderful. In 20 years, this is the best organized, most pragmatic and enjoyable course I've taken.”

“The best instructor-led course I have attended, by far.”

“Best short course ever!”

“Compared to the other short courses I have taken, this one completely redefined my scale from 1-10.”

“In my 35+ years of taking technical courses, Marty's classes consistently come out ranking #1 on my list. Highly relevant material is delivered with enthusiasm, humor, and a high degree of class interaction that is unmatched anywhere.”

more student reviews

Following are the main topics covered in the course. If you have a group of at least eight interested developers (10 for courses outside the US or Canada), contact Marty to arrange a course at your location. Onsite courses are easier administratively, are better for clients since the topics and pace can be customized, are more cost effective for students since no travel is required, and are more convenient (for companies in the Baltimore/Washington area) because the schedule is flexible (e.g. afternoons or evenings instead of n consecutive days). However, if you have too few developers for an onsite course, check out our upcoming Spring and Hibernate training courses in Maryland (co-sponsored by the Johns Hopkins Engineering for Professionals program). The Spring and Hibernate/JPA courses are developed and taught by Matt Cherry, with review and editing by Marty Hall.

Please note that these Hibernate-specific topics can be combined with the Spring Framework training course for a five-day combined course. However, Hibernate is not necessarily linked to Spring, and the Hibernate topics can be taught separately if desired. Of course, Hibernate can also be combined with any of the other training topics. Contact Marty to put together a customized blend of topics to fit your needs.


An Introduction to Hibernate

  • Refresher in enterprise application architectures
  • Traditional persistence
  • Hibernate motivation
  • Installation

Walk-through of a Simple Hibernate Example

  • Defining the domain model
  • Setting up the Hibernate configuration file
  • Creating the domain object mapping files
  • Making Hibernate aware of the mapping files
  • Updating the hibernate.cfg.xml with list of mapping files
  • Implementing a HibernateUtil class
  • Writing the code

Association and Collection Mapping

  • Understand Collection and Association relationships
  • See how to realize relationships in Java and databases
  • Walk through the Hibernate approach of mapping both Collections and Associations

Component and Inheritance Mapping

  • The difference between Components and Entities
  • Some uses of Components, and their mapping
  • Strategies and implementations for realizing inheritance

Object Lifecycle, Persistence, and Session Management

  • Entity lifecyle
    • The lifecycle of Hibernate entities, when they transition from state–to–state, and how this affects development
  • Persistence details
    • A closer look at persistence
    • How Hibernate manages dirty and related objects
  • Hibernate sessions
    • How Hibernate uses a Session to track and optimize user activities

Transaction Management and Automatic Versioning

  • Transactions
    • Brush up on transactions, and recognize they're not just for databases
    • Explore the different ways to include transactions into applications
  • Protecting user data
    • Learn a technique for ensuring that persistent changes to objects don't inadvertently overwrite other user's actions

Hibernate Querying

  • Briefly review SQL querying
  • Discover Hibernate’s different approaches to querying a database
  • Get acquainted with the ‘Query by Criteria’ technique
  • Introduce the ‘Query by Example’ offshoot

Hibernate Query Language and Native SQL

  • The Hibernate Query Language
    • Introducing the Hibernate Query Language
    • Leveraging HQL to write database queries
  • Native SQL
    • Understanding when to write your own SQL
    • Executing Native SQL with Hibernate

Advanced Hibernate Features

  • Batch Processing
  • Data Filtering
  • Interceptors and Events
  • Calling Triggers and Stored Procedures
  • 2nd Level Cache
  • Statistics
  • DDL Generation
  • Integration with Spring

The Java Persistence API (JPA)

  • Become acquainted with the Java Persistence API (JPA)
  • Compare and contrast Hibernate and JPA
  • Learn how to setup and use Hibernate as a JPA provider