Before we start any discussion about Persistence technologies, we need to
understand what exactly it is in computer science. In simple terms ability to
retain data structures between various program executions. A perfect example of
this would be a word processor saving undo history. In practice, this is
achieved by storing the data in non- volatile storage such as a file system or a
relational database or an object database.
The popularity of databases has increased manifold in the past few years.
Java has become the preferred choice of developers for developing secure,
flexible, and scalable database driven web applications. These web applications
require objects to be associated with appropriate databases. Hibernate, along
with other persistence technologies associates objects with the appropriate
database in a simple, straight forward and natural way.
Hibernate is one such effort from the Java community to develop many object
oriented solutions to data persist ency. Any kind of Java persistence solution
includes two main elements i.e. ORM (Object Relational Mapping) and OOM(Object
Oriented Modeling).
Hibernate has become immensely popular amongst the developer community as it
is a free, powerful, high performance open source object - relational mapping
persistence Java package that makes it easier to work with relational databases
for Java Applications.
Apart from Hibernate, other popular open source Java technologies include
JDBC, abates, JDO, Top Link and CMP Entity Beans. These technologies provide a
standardized object-relational mapping mechanism.
Java based application programming Interface is the latest version of the
Java Data Objects (JDO) technology which was the earlier persistent technology
used by developers. JPA is the latest Java Specification standard for java
enterprise applications. The Java API is a java programming language framework
that allows developers to manage relational data in Java standard edition and
Enterprise Edition applications. Java API originated as part of the work of the
JSR 220 expert group.
The java API's has been developed after drawing upon the best ideas from
other prevalent technologies like Top link, JDO, Hibernate etc. In simple words,
Java Persistence API is a Plain Old Java Object API for object /relational
mapping and supports a rich, SQL -like query language for both static and
dynamic queries.
Vendors involved in application development have found that the use of
Hibernate technology with Java persistence API's helps build flexible, database
driven web applications that are highly scalable and involve complex business
processes.