Hibernate (framework)

Hibernate is free software that is distributed under the GNU Lesser General Public License 2.1.

It generates SQL calls and relieves the developer from the manual handling and object conversion of the result set.

When using an XML file, Hibernate can generate skeleton source code for the persistence classes.

Hibernate can use the XML file or the Java annotations to maintain the database schema.

Mapping informs the ORM tool of what Java class object to store in which database table.

Hibernate provides transparent persistence for Plain Old Java Objects (POJOs).

[3] Hibernate recommends providing an identifier attribute, and this is planned to be a mandatory requirement in a future release.

For example, Adobe integrated Hibernate into version 9 of ColdFusion (which runs on J2EE app servers) with an abstraction layer of new functions and syntax added into CFML.

Hibernate was started in 2001 by Gavin King with colleagues from Cirrus Technologies as an alternative to using EJB2-style entity beans.

As of 2010[update], Hibernate 3 (version 3.5.0 and up) was a certified implementation of the Java Persistence API 2.0 specification via a wrapper for the Core module which provides conformity with the JSR 317 standard.

This includes new features such as multi-tenancy support, introduction of ServiceRegistry (a major change in how Hibernate builds and manages "services"), better session opening from SessionFactory, improved integration via org.hibernate.integrator.spi.Integrator and auto discovery, internationalization support, message codes in logging, and a more distinction between the API, SPI or implementation classes.

[2]: 26 The org.hibernate.Session interface[13] represents a Hibernate session, i.e., the main point of the manipulation performed on the database entities.

Due to the latter feature, Session implementations are not expected to be thread safe nor to be used by multiple clients.