## Hibernate O/RM JavaDocs (aggregated)

Hibernate provides both

- a native API comprised centrally around {@link org.hibernate.SessionFactory} and {@link org.hibernate.Session}
- an implementation of the Java Persistence API (JPA) specification comprised centrally around {@link org.hibernate.jpa.internal.EntityManagerFactoryImpl} and {@link org.hibernate.jpa.internal.EntityManagerImpl} (the Hibernate implementations of {@link javax.persistence.EntityManager} and {@link javax.persistence.EntityManagerFactory}, respectively). See the latest JPA JSR for details.

### Native API

In addition to SessionFactory and Session, applications using the native API will often utilize the following interfaces:

- {@link org.hibernate.cfg.Configuration}
- {@link org.hibernate.Transaction}
- {@link org.hibernate.Query}
- {@link org.hibernate.Criteria}
- {@link org.hibernate.criterion.Projection}
- {@link org.hibernate.criterion.Projections}
- {@link org.hibernate.criterion.Criterion}
- {@link org.hibernate.criterion.Restrictions}
- {@link org.hibernate.criterion.Order}
- {@link org.hibernate.criterion.Example}

These interfaces are fully intended to be exposed to application code.

### JPA

The JPA interfaces are all defined by the JPA specification. For details see {@link javax.persistence}

### Package Groups

This documentation groups packages into the following 3 categories:

- API - classes to which application code will generally bind directly.
- SPI - classes to which application developers or integrators will commonly bind directly in order to develop extensions to Hibernate, or to alter its behavior in some way.
- Internal - classes which are intended only to be used by Hibernate. Use of these classes outside of Hibernate specific use cases is not supported. Moreover, these contracts can change frequently between releases whereas APIs and SPIs are more stable.

Additionally, we highlight a 4th category Testing Support which is a set of classes useful for building Hibernate test cases.

Complete Hibernate documentation may be found online at http://docs.jboss.org/hibernate/