Hibernate ORM (or simply Hibernate) is an object-relational mapping tool for the Java programming language. It provides a framework for mapping an object-oriented domain model to a relational database. Hibernate handles object-relational impedance mismatch problems by replacing direct, persistent database accesses with high-level object handling functions.
Hibernate is free software that is distributed under the GNU Lesser General Public License 2.1.
Hibernate's primary feature is mapping from Java classes to database tables, and mapping from Java data types to SQL data types. Hibernate also provides data query and retrieval facilities. It generates SQL calls and relieves the developer from the manual handling and object conversion of the result set.
The Hibernate software includes the following components:
- Hibernate ORM (known as Hibernate Core before release 4.1) – the base software for an object-relational mapping solution for Java environments
- Hibernate Annotations (merged into Hibernate Core/ORM since version 3.6) – metadata that governs the transformation of data between the object-oriented model and the relational database model according to the JSR 317 Java Persistence API (JPA 2)
- Hibernate EntityManager (merged into Hibernate Core/ORM since version 5.2)– together with Hibernate Annotations, a wrapper that implements a JSR 317 Java Persistence API (JPA 2) persistence solution
- Hibernate Envers – auditing and versioning of persistent classes
- Hibernate OGM (Object/Grid Mapper) – an extension to store data in a NoSQL store
- Hibernate Shards – horizontal partitioning for multiple relational databases
- While Hibernate Shards is not compatible with 4.x releases of Hibernate Core, some of the Shards capability was integrated into Core in the 4.0 release
- Hibernate Search – integrates the full text library functionality from Apache Lucene in the Hibernate and JPA model
- Hibernate Tools – a set of tools implemented as a suite of Eclipse plugins and Ant tasks included in JBoss Developer Studio
- Hibernate Validator – the reference implementation of JSR 303 Bean Validation
- Hibernate Metamodel Generator – an annotation processor that creates JSR 317 Java Persistence API (JPA 2) static metamodel classes using the JSR 269 Pluggable Annotation Processing API
- NHibernate – an object-relational mapping solution for the .NET Framework
Hibernate has been used in the oGaTe and IIX Gateway (Insurance oGaTe).