Provides persistence of the execution of a system, usually by writing its state to files or to a database. -- KlausWuestefeld
See also: PrevalenceLayer
Explanation: Persistence, in computer science, is an adjective describing data that outlives the process that created it. Java persistence could be defined as storing anything to any level of persistence using the Java programming language.
There are many ways to make data persist in Java, including (to name a few): JDBC, serialization, file IO, JCA, object databases, and XML databases. However, the majority of data is persisted in databases, specifically relational databases. Most things that you do on a computer or web site that involve storing data, involve accessing a relational database. Relational databases are the standard mode of persistent storage for most industries, from banking to manufacturing.
There are many things that can be stored in databases with Java. Java data includes strings, numbers, date and byte arrays, images, XML, and Java objects. Many Java applications use Java objects to model their application data. Because Java is an Object Oriented language, storing Java objects is a natural and common approach to persisting data from Java.
There are many ways to access a relational database from Java, JPA is just the latest of many different specifications, but it seems to be the direction that most programmers are heading.
BY: Shahrukh Kiyani