<?xml version="1.0" encoding="UTF-8"?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at
 
 http://www.apache.org/licenses/LICENSE-2.0
 
 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.   
-->
<chapter id="jpa_overview_intro">
    <title>
        Introduction
    </title>
    <para>
    <indexterm>
        <primary>
            EJB3 Persistence
        </primary>
        <see>
            JPA
        </see>
    </indexterm>
    <indexterm>
        <primary>
            JPA
        </primary>
    </indexterm>
The Java Persistence 2.0 API (JPA 2.0) is a specification
for the persistence of Java objects to any relational
datastore. This document provides an overview of JPA 2.0. Unless
otherwise noted, the information presented applies to all JPA implementations.
    </para>
    <note>
        <para>
For coverage of OpenJPA's many extensions to the JPA specification,
see the <link linkend="ref_guide_intro">Reference Guide</link>.
        </para>
    </note>
    <section id="jpa_overview_intro_audience">
        <title>
            Intended Audience
        </title>
        <para>
This document is intended for developers who want to learn about JPA
in order to use it in their applications. It assumes that you have a strong
knowledge of object-oriented concepts and Java, including annotations and
generics. It also assumes some experience with relational databases and the
Structured Query Language (SQL).
        </para>
    </section>
    <section id="jpa_overview_intro_transpers">
        <title>
            Lightweight Persistence
        </title>
        <indexterm zone="jpa_overview_intro_transpers">
            <primary>
                lightweight persistence
            </primary>
        </indexterm>
        <para>
        <indexterm>
            <primary>
                persistent data
            </primary>
        </indexterm>
<emphasis>Persistent data</emphasis> is information that can outlive the program
that creates it. The majority of complex programs use persistent data: GUI
applications need to store user preferences across program invocations, web
applications track user movements and orders over long periods of time, etc.
        </para>
        <para>
<emphasis>Lightweight persistence</emphasis> is the storage and retrieval of
persistent data with little or no work from you, the developer. For example,
Java serialization
        <indexterm>
            <primary>
                serialization
            </primary>
        </indexterm>
is a form of lightweight persistence because it can be used to persist Java
objects directly to a file with very little effort. Serialization's capabilities
as a lightweight persistence mechanism pale in comparison to those provided by
JPA, however. The next chapter compares JPA to serialization and other available
persistence mechanisms.
        </para>
    </section>
</chapter>
