Hibernate Java Training

Introduction to Hibernate

  • Issues with Persistence layers and Object-Relational Mapping (ORM)
  • Hibernate Overview and Benefits
  • Hibernate architecture overview
  • POJO (Plain Old Java Object) Based Mapping

Getting started with Hibernate quickly

  • Overview of the Hibernate distribution
  • Configuring Hibernate
  • hibernate.cfg.xml file
  • SessionFactory configuration
  • Connection properties, Database dialect
  • Configuration class, Session Interface
  • “Hello Work” Program for Hibernate
  • 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 – log4j Overview and configuration for Hibernate

Querying

  • Inserting and Updating Entities
  • HQL – Hibernate Query Language Overview
  • The Query Interface
  • Creating and working with queries
  • Named Queries, Projection Queries, Aggregate Queries

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

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
  • 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

Hibernate and Java Persistence / EJB 3

  • Overview of Java Persistence / EJB 3
  • Relationship between Java Persistence and Hibernate
  • Overview of Annotations
  • Mapping Entities with Hibernate 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