Hibernate is an object-relational mapping (ORM)
library for the Java language, providing a framework for mapping an
object-oriented domain model to a traditional relational database. Hibernate
solves object-relational impedance mismatch problems by replacing direct
persistence-related database accesses with high-level object handling
functions.
Hibernate is free software that is distributed under
the GNU Lesser General Public License. Hibernate's primary feature is mapping
from Java classes to database tables (and from Java data types to SQL data
types). Hibernate also provides data query and retrieval facilities. It also
generates the SQL calls and attempts to relieve the developer from manual
result set handling and object conversion and keep the application portable to
all supported SQL databases with little performance overhead
Mapping Java classes to database tables is accomplished through the
configuration of an XML file or by using Java Annotations. When using an XML
file, Hibernate can generate skeletal source code for the persistence classes.
This is unnecessary when annotations are used. Hibernate can use the XML file
or the annotations to maintain the database schema. Facilities to arrange
one-to-many and many-to-many relationships between classes are provided. In
addition to managing associations between objects, Hibernate can also manage
reflexive associations where an object has a one-to-many relationship with
other instances of its own type.
Hibernate supports the
mapping of custom value types. This makes the following scenarios possible:
1. Overriding
the default SQL type that Hibernate chooses when mapping a column to a property.
2. Mapping
Java bean to columns as if they were regular properties.
3. Mapping
a single property to multiple columns.
Hibernate
provides an SQL inspired language called Hibernate Query Language (HQL) which
allows SQL-like queries to be written against Hibernate's data objects.
Criteria Queries are provided as an object-oriented alternative to HQL .Hibernate
can be used both in standalone Java applications and in Java EE applications
using servlets, EJB session beans, and JBI service components. It can also be
included as a feature in other programming languages.
Hibernate was started in 2001 by Gavin King as an alternative to using
EJB2-style entity beans. Its mission back then was to simply offer better
persistence capabilities than offered by EJB2 by simplifying the complexities
and allowing for missing features.
Early in 2003, the Hibernate
development team began Hibernate2 releases which offered many significant
improvements over the first release. JBoss, Inc. (now part of Red Hat) later
hired the lead Hibernate developers and worked with them in supporting
Hibernate.
In 2010, Hibernate version 3.x was released with the features like: a
new Interceptor/Callback architecture, user defined filters, and JDK 5.0
Annotations (Java's metadata feature). As of 2010 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.
In Dec 2011, Hibernate Core 4.0.0 Final was released. This includes new
features like: Initial multi-tenancy support, Introduction of ServiceRegistry
(which is a major change in how Hibernate builds and manages
"services"), Clean up of Session opening from SessionFactory,
Improved integration via org.hibernate.integrator.spi.Integrator and auto
discovery, Improved logging with i18n support and message codes, Initial work
on more clear split between API, SPI and implementation classes, Clean up of
deprecated methods, classes.
For Further Reading,
0 comments:
Post a Comment