Hibernate documentation is organized into several guides that cover specific topics. This guide provides links to all the documentation to give some direction on where to look for information.

See the Migration Guide for details about migration to Hibernate 6.6.

Usage Guides

Hibernate publishes multiple usage guides -

Quick Start

Tutorial style guide for quickly getting started with Hibernate.

Introduction to Hibernate

High-level look at the most used Hibernate features.

Guide to the Hibernate Query Language

Discussion of the Hibernate Query Language.

User Guide

Detailed discussion of all features of Hibernate. More of a reference manual.


The Logging Guide discusses logging in Hibernate.


See the Tooling Guide for information on:

  • Bytecode enhancement

  • Static Metamodel Generation

  • Gradle, Maven, and Ant plugins

  • Schema management

Integrator Guides

Compatibility and Support

Compatibility is defined as …​

Support is defined as …​

By default, all parts of Hibernate are considered supported and follow the general backwards compatibility policy. Various things influence the levels of support and backwards compatibility to expect in regard to parts of Hibernate.


Internal parts of Hibernate are simply that - internal implementation details that are not supported for use by applications. Use of internal contracts should be avoided as they are not supported and could be removed or changed at any time.

Contracts considered internal are defined in one of 2 ways:

  1. The Java class (interface, etc.) is defined under a package named internal, either directly or as a sub-package

  2. Through the use of the @Internal annotation.

See the definitive set of internals.


Incubating contracts are generally new contracts which are still being actively designed, similar to "tech preview" features. Such contracts are subject to change and should be used with that understanding.

See the definitive set of incubations.


  1. @Deprecated

  2. @Remove

See the definitive set of deprecations.