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.