# Hibernate JavaDoc (3.6.10.Final)

Aggregated Hibernate Core JavaDocs

See:
Description

Core API
org.hibernate: This package defines the central Hibernate APIs.
org.hibernate.cfg: This package defines APIs for configuring Hibernate, and classes for building the Hibernate configuration-time metamodel.
org.hibernate.classic: This package implements backward-compatibility with Hibernate 2.1 APIs now deprecated in Hibernate3.
org.hibernate.criterion: A framework for defining restriction criteria and order criteria.
org.hibernate.mapping: This package defines the Hibernate configuration-time metamodel.
org.hibernate.metadata: This package defines an API for accessing the Hibernate runtime metamodel.
org.hibernate.stat: This package exposes statistics about a running Hibernate instance to the application.

Extension SPI
org.hibernate.cache: This package defines APIs/SPIs and implementations for the Hibernate second-level cache.
org.hibernate.cache.access: Defines contracts for transactional and concurrent access to cached `entity` and `collection` data.
org.hibernate.cache.entry: This package defines formats for disassembled state kept in the second level cache.
org.hibernate.cache.impl
org.hibernate.cache.impl.bridge
org.hibernate.collection: This package defines a framework for collection wrappers.
org.hibernate.connection: This package abstracts the mechanism for obtaining a JDBC connection.
org.hibernate.dialect: This package abstracts the SQL dialect of the underlying database.
org.hibernate.dialect.function: A framework for defining database-specific SQL functions that are available via the dialect.
org.hibernate.dialect.lock
org.hibernate.dialect.resolver
org.hibernate.event: This package defines an event framework for Hibernate.
org.hibernate.event.def: This package defines a default set of event listeners that implements the default behaviors of Hibernate.
org.hibernate.id: This package contains internal implementation classes for the main API interfaces.
org.hibernate.id.enhanced
org.hibernate.id.factory
org.hibernate.id.insert
org.hibernate.id.uuid
org.hibernate.jdbc: This package abstracts the mechanism for dispatching SQL statements to the database, and implements interaction with JDBC.
org.hibernate.loader: This package defines functionality for processing JDBC result sets and returning complex graphs of persistent objects.
org.hibernate.loader.collection: This package defines collection initializers
org.hibernate.loader.criteria: This package defines the criteria query compiler and loader
org.hibernate.loader.custom: This package defines a framework for custom loaders that accept handwritten SQL
org.hibernate.loader.custom.sql
org.hibernate.loader.entity: This package defines entity loaders
org.hibernate.loader.hql: This package defines a loader for the AST-based query parser
org.hibernate.persister: A persister defines a mapping strategy for a collection or entity.
org.hibernate.persister.collection: This package abstracts the persistence mechanism for collections.
org.hibernate.persister.entity: This package abstracts persistence mechanisms for entities, and defines the Hibernate runtime metamodel.
org.hibernate.property: This package abstracts the notion of a "property" of an entity.
org.hibernate.proxy: This package defines a framework for lazy-initializing entity proxies.
org.hibernate.transaction: This package abstracts the underlying transaction mechanism (JTA or JDBC) and provides strategies for obtaining application server `TransactionManager`s.
org.hibernate.transform: Defines strategies for post-processing criteria query result sets into a form convenient to the application.
org.hibernate.tuple: This package defines a runtime metamodel for entities at the object level and abstracts the differences between the various entity modes.
org.hibernate.type: A Hibernate `Type` is a strategy for mapping a Java property type to a JDBC type or types.
org.hibernate.usertype: Interfaces for user-defined custom types.

Bytecode providers
org.hibernate.bytecode: This package defines the API for plugging in bytecode libraries for usage by Hibernate.
org.hibernate.bytecode.buildtime
org.hibernate.bytecode.cglib
org.hibernate.bytecode.javassist
org.hibernate.bytecode.util
org.hibernate.intercept: This package implements an interception mechanism for lazy property fetching, based on CGLIB bytecode instrumentation.
org.hibernate.intercept.cglib
org.hibernate.intercept.javassist

Infinispan Integration
org.hibernate.cache.infinispan
org.hibernate.cache.infinispan.access
org.hibernate.cache.infinispan.collection
org.hibernate.cache.infinispan.entity
org.hibernate.cache.infinispan.impl
org.hibernate.cache.infinispan.query
org.hibernate.cache.infinispan.timestamp
org.hibernate.cache.infinispan.tm
org.hibernate.cache.infinispan.util

Other Packages
org.hibernate.action: This package defines "actions" that are scheduled for asycnchronous execution by the event listeners.
org.hibernate.annotations
org.hibernate.cfg.annotations
org.hibernate.cfg.annotations.reflection
org.hibernate.cfg.beanvalidation
org.hibernate.cfg.search
org.hibernate.context
org.hibernate.ejb
org.hibernate.ejb.cfg.spi
org.hibernate.ejb.connection
org.hibernate.ejb.criteria
org.hibernate.ejb.criteria.expression
org.hibernate.ejb.criteria.expression.function
org.hibernate.ejb.criteria.path
org.hibernate.ejb.criteria.predicate
org.hibernate.ejb.event
org.hibernate.ejb.instrument
org.hibernate.ejb.metamodel
org.hibernate.ejb.packaging
org.hibernate.ejb.transaction
org.hibernate.ejb.util
org.hibernate.engine: This package contains classes that are "shared" by other packages, and implementations of some key algorithms.
org.hibernate.engine.jdbc
org.hibernate.engine.loading
org.hibernate.engine.profile
org.hibernate.engine.query
org.hibernate.engine.query.sql
org.hibernate.engine.transaction
org.hibernate.envers
org.hibernate.envers.ant
org.hibernate.envers.configuration
org.hibernate.envers.configuration.metadata
org.hibernate.envers.configuration.metadata.reader
org.hibernate.envers.entities
org.hibernate.envers.entities.mapper
org.hibernate.envers.entities.mapper.id
org.hibernate.envers.entities.mapper.relation
org.hibernate.envers.entities.mapper.relation.component
org.hibernate.envers.entities.mapper.relation.lazy
org.hibernate.envers.entities.mapper.relation.lazy.initializor
org.hibernate.envers.entities.mapper.relation.lazy.proxy
org.hibernate.envers.entities.mapper.relation.query
org.hibernate.envers.event
org.hibernate.envers.exception
org.hibernate.envers.query
org.hibernate.envers.query.criteria
org.hibernate.envers.query.impl
org.hibernate.envers.query.order
org.hibernate.envers.query.projection
org.hibernate.envers.query.property
org.hibernate.envers.reader
org.hibernate.envers.revisioninfo
org.hibernate.envers.strategy
org.hibernate.envers.synchronization
org.hibernate.envers.synchronization.work
org.hibernate.envers.tools
org.hibernate.envers.tools.graph
org.hibernate.envers.tools.query
org.hibernate.envers.tools.reflection
org.hibernate.exception: This package is a fork of Apache commons-lang nestable exceptions.
org.hibernate.hql: This package defines the interface between Hibernate and the HQL query parser implementation (to allow switching between the 2.x and 3.0 HQL parsers).
org.hibernate.hql.antlr: A special package for ANTLR-generated parser classes.
org.hibernate.hql.ast: An ANTLR-based parser for Hibernate Query Language.
org.hibernate.hql.ast.exec
org.hibernate.hql.ast.tree
org.hibernate.hql.ast.util
org.hibernate.hql.classic: This package contains the Hibernate 2.x query parser which is being end-of-lifed.
org.hibernate.impl: This package contains implementations of the central Hibernate APIs, especially the Hibernate session.
org.hibernate.jdbc.util
org.hibernate.jmx: This package exposes a Hibernate instance via JMX.
org.hibernate.lob
org.hibernate.param
org.hibernate.pretty: Classes for pretty printing things for exception and log messages.
org.hibernate.proxy.dom4j
org.hibernate.proxy.map
org.hibernate.proxy.pojo
org.hibernate.proxy.pojo.cglib
org.hibernate.proxy.pojo.javassist
org.hibernate.secure: Declarative security for CRUD operations on entities.
org.hibernate.sql: This package defines helper classes for rendering SQL fragments and SQL statements.
org.hibernate.sql.ordering.antlr
org.hibernate.testing.async
org.hibernate.testing.cache
org.hibernate.testing.junit
org.hibernate.testing.junit.functional
org.hibernate.testing.junit.functional.annotations
org.hibernate.testing.tm: Defines a simplified JTA TransactionManager and transactional connection pool designed for use in test suite and simple usage scenarios.
org.hibernate.tool.ant
org.hibernate.tool.hbm2ddl: The `hbm2ddl` tool.
org.hibernate.tool.instrument: The `instrument` tool for adding field-interception hooks to persistent classes using built-time bytecode processing.
org.hibernate.tool.instrument.cglib
org.hibernate.tool.instrument.javassist
org.hibernate.transaction.synchronization
org.hibernate.tuple.component
org.hibernate.tuple.entity
org.hibernate.type.descriptor
org.hibernate.type.descriptor.java
org.hibernate.type.descriptor.sql: Defines handling of the standard `JDBC`-defined types, as declared by `Types`.
org.hibernate.util: Utility classes.
org.hibernate.util.xml

## Aggregated Hibernate Core JavaDocs

Hibernate provides both

- a native API comprised mainly of `SessionFactory` and `Session`
- an implementation of the JSR-317 Java Persistence API (JPA) specification comprised mainly of `EntityManagerFactoryImpl` and `EntityManagerImpl`

### Native API

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

- `Configuration`
- `Hibernate`
- `Transaction`
- `Query`
- `Criteria`
- `Projection`
- `Projections`
- `Criterion`
- `Restrictions`
- `Order`
- `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 `javax.persistence`

### Extensions

Hibernate defines a number of interfaces that are completely intended to be extendable by application programmers and/or integrators. Listed below is a (not necessarily exhaustive) list of the most commonly utilized extension points:

- `EntityNameResolver`
- `Interceptor` / `EmptyInterceptor`
- `Transaction` / `TransactionFactory`
- `CurrentSessionContext`
- `Dialect`
- `DialectResolver`
- `event listener` interfaces
- `IdentifierGenerator`
- `EntityTuplizer` / `ComponentTuplizer`
- `Type` / `org.hibernate.usertype`

Note that there is a large degree of crossover between the notion of extension points and that of an integration SPI (below).

### Integration SPI

Hibernate provides a number of SPIs intended to integrate itself with various third party frameworks or application code to provide additional capabilities. The SPIs fall mainly into 2 categories:

- Caching - `RegionFactory`
- JDBC Connection management - `ConnectionProvider`

Certainly `Dialect` could fit in here as well, though we chose to list it under extensions since application developers tend to provide extended dialects rather frequently for various reasons.
Another SPI that is not yet exposed but is planned for such is the bytecode provider SPI. See `org.hibernate.bytecode` for details.

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

Copyright © 2001-2010 Red Hat, Inc. All Rights Reserved.