| <?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> |