You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by kw...@apache.org on 2014/05/15 00:22:26 UTC
svn commit: r908837 [36/37] -
/websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/
Added: websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_runtime.html
==============================================================================
--- websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_runtime.html (added)
+++ websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_runtime.html Wed May 14 22:22:23 2014
@@ -0,0 +1,222 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>Chapter 9. Runtime Extensions</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"><link rel="home" href="manual.html" title="Apache OpenJPA 2.3 User's Guide"><link rel="up" href="ref_guide.html" title="Part 3. Reference Guide"><link rel="prev" href="ref_guide_enterprise_xa.html" title="3. XA Transactions"><link rel="next" href="ref_guide_runtime_jpa.html" title="2. JPA Extensions"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 9.
+ Runtime Extensions
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ref_guide_enterprise_xa.html">Prev</a> </td><th width="60%" align="center">Part 3. Reference Guide</th><td width="20%" align="right"> <a accesskey="n" href="ref_guide_runtime_jpa.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter 9. Runtime Extensions" id="ref_guide_runtime"><div class="titlepage"><div><div><h2 class="title">Chapter 9.
+ Runtime Extensions
+ </h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="ref_guide_runtime.html#ref_guide_runtime_arch">1.
+ Architecture
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_runtime.html#ref_guide_runtime_broker_finalization">1.1.
+ Broker Finalization
+ </a></span></dt><dt><span class="section"><a href="ref_guide_runtime.html#ref_guide_runtime_broker_extension">1.2.
+ Broker Customization and Eviction
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_runtime_jpa.html">2.
+ JPA Extensions
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_runtime_jpa.html#ref_guide_runtime_emfactory">2.1.
+ OpenJPAEntityManagerFactory
+ </a></span></dt><dt><span class="section"><a href="ref_guide_runtime_jpa.html#ref_guide_runtime_em">2.2.
+ OpenJPAEntityManager
+ </a></span></dt><dt><span class="section"><a href="ref_guide_runtime_jpa.html#ref_guide_runtime_jpaquery">2.3.
+ OpenJPAQuery
+ </a></span></dt><dt><span class="section"><a href="ref_guide_runtime_jpa.html#ref_guide_runtime_jpaextent">2.4.
+ Extent
+ </a></span></dt><dt><span class="section"><a href="ref_guide_runtime_jpa.html#ref_guide_runtime_jpacache">2.5.
+ StoreCache
+ </a></span></dt><dt><span class="section"><a href="ref_guide_runtime_jpa.html#ref_guide_runtime_jpaquerycache">2.6.
+ QueryResultCache
+ </a></span></dt><dt><span class="section"><a href="ref_guide_runtime_jpa.html#ref_guide_runtime_jpafetch">2.7.
+ FetchPlan
+ </a></span></dt><dt><span class="section"><a href="ref_guide_runtime_jpa.html#ref_guide_runtime_openjpaentitytransaction">2.8.
+ OpenJPAEntityTransaction
+ </a></span></dt><dt><span class="section"><a href="ref_guide_runtime_jpa.html#ref_guide_runtime_openjpapersistence">2.9.
+ OpenJPAPersistence
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_locking.html">3.
+ Object Locking
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_locking.html#ref_guide_locking_default">3.1.
+ Configuring Default Locking
+ </a></span></dt><dt><span class="section"><a href="ref_guide_locking.html#ref_guide_locking_runtime">3.2.
+ Configuring Lock Levels at Runtime
+ </a></span></dt><dt><span class="section"><a href="ref_guide_locking.html#ref_guide_locking_apis">3.3.
+ Object Locking APIs
+ </a></span></dt><dt><span class="section"><a href="ref_guide_locking.html#ref_guide_locking_lockmgr">3.4.
+ Lock Manager
+ </a></span></dt><dt><span class="section"><a href="ref_guide_locking.html#ref_guide_locking_rules">3.5.
+ Rules for Locking Behavior
+ </a></span></dt><dt><span class="section"><a href="ref_guide_locking.html#ref_guide_locking_issues">3.6.
+ Known Issues and Limitations
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_savepoints.html">4.
+ Savepoints
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_savepoints.html#reg_guide_savepoints_using">4.1.
+ Using Savepoints
+ </a></span></dt><dt><span class="section"><a href="ref_guide_savepoints.html#ref_guide_savepoints_conf">4.2.
+ Configuring Savepoints
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_enterprise_methodql.html">5.
+ MethodQL
+ </a></span></dt><dt><span class="section"><a href="ref_guide_sequence.html">6.
+ Generators
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_sequence.html#ref_guide_sequence_runtime">6.1.
+ Runtime Access
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_runtime_pm_event.html">7.
+ Transaction Events
+ </a></span></dt><dt><span class="section"><a href="ref_guide_enterprise_abstractstore.html">8.
+ Non-Relational Stores
+ </a></span></dt></dl></div>
+
+ <p>
+This chapter describes OpenJPA extensions to the standard JPA
+interfaces, and outlines some additional features of the OpenJPA runtime.
+ </p>
+ <div class="section" title="1. Architecture"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="ref_guide_runtime_arch">1.
+ Architecture
+ </h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="ref_guide_runtime.html#ref_guide_runtime_broker_finalization">1.1.
+ Broker Finalization
+ </a></span></dt><dt><span class="section"><a href="ref_guide_runtime.html#ref_guide_runtime_broker_extension">1.2.
+ Broker Customization and Eviction
+ </a></span></dt></dl></div>
+
+ <p>
+Internally, OpenJPA does not adhere to any persistence specification. The
+OpenJPA kernel has its own set of APIs and components. Specifications like JPA
+and JDO are simply different "personalities" that OpenJPA's native kernel
+can adopt.
+ </p>
+ <p>
+As an OpenJPA user, you will not normally see beneath
+OpenJPA's JPA personality. OpenJPA allows you to access its feature set without
+leaving the comfort of JPA. Where OpenJPA goes beyond standard JPA
+functionality, we have crafted JPA-specific APIs to each OpenJPA extension for
+as seamless an experience as possible.
+ </p>
+ <p>
+When writing OpenJPA plugins or otherwise extending the OpenJPA runtime,
+however, you will use OpenJPA's native APIs. So that you won't feel lost, the
+list below associates each specification interface with its backing native
+OpenJPA component:
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+ <p>
+<code class="classname">javax.persistence.EntityManagerFactory</code>: <span class="emphasis"><em>
+<code class="classname">org.apache.openjpa.kernel.BrokerFactory</code></em></span>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="classname">javax.persistence.EntityManager</code>: <span class="emphasis"><em><code class="classname">
+org.apache.openjpa.kernel.Broker</code></em></span>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="classname">javax.persistence.Query</code>: <span class="emphasis"><em><code class="classname">
+org.apache.openjpa.kernel.Query</code></em></span>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="classname">org.apache.openjpa.persistence.Extent</code>: <span class="emphasis"><em>
+<code class="classname">org.apache.openjpa.kernel.Extent</code></em></span>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="classname">org.apache.openjpa.persistence.StoreCache</code>: <span class="emphasis"><em>
+<code class="classname">org.apache.openjpa.datacache.DataCache</code></em></span>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="classname">org.apache.openjpa.persistence.QueryResultCache</code>:
+<span class="emphasis"><em><code class="classname">org.apache.openjpa.datacache.QueryCache</code>
+</em></span>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="classname">org.apache.openjpa.persistence.FetchPlan</code>: <span class="emphasis"><em>
+<code class="classname">org.apache.openjpa.kernel.FetchConfiguration</code></em></span>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="classname">org.apache.openjpa.persistence.Generator</code>: <span class="emphasis"><em>
+<code class="classname">org.apache.openjpa.kernel.Seq</code></em></span>
+ </p>
+ </li></ul></div>
+ <p>
+The <a class="link" href="ref_guide_runtime_jpa.html#ref_guide_runtime_openjpapersistence" title="2.9. OpenJPAPersistence"><code class="classname">
+org.apache.openjpa.persistence.OpenJPAPersistence</code></a> helper
+allows you to convert between <code class="classname">EntityManagerFactories</code> and
+<code class="classname">BrokerFactories</code>, <code class="classname">EntityManager</code>s
+and <code class="classname">Broker</code>s.
+ </p>
+ <div class="section" title="1.1. Broker Finalization"><div class="titlepage"><div><div><h3 class="title" id="ref_guide_runtime_broker_finalization">1.1.
+ Broker Finalization
+ </h3></div></div></div>
+
+ <a class="indexterm" name="d5e15266"></a>
+ <p>
+Outside of a Java EE application server or other JPA persistence container
+environment, the default OpenJPAEntityManager implementation automatically
+closes itself during instance finalization. This guards against accidental
+resource leaks that may occur if a developer fails to explicitly close
+EntityManagers when finished with them, but it also incurs a scalability
+bottleneck, since the JVM must perform synchronization during instance creation,
+and since the finalizer thread will have more instances to monitor. To avoid
+this overhead, set the
+<a class="link" href="ref_guide_conf_openjpa.html#openjpa.BrokerImpl" title="5.4. openjpa.BrokerImpl"><code class="literal">openjpa.BrokerImpl</code></a>
+configuration property to <code class="literal">non-finalizing</code>.
+ </p>
+ </div>
+ <div class="section" title="1.2. Broker Customization and Eviction"><div class="titlepage"><div><div><h3 class="title" id="ref_guide_runtime_broker_extension">1.2.
+ Broker Customization and Eviction
+ </h3></div></div></div>
+
+ <a class="indexterm" name="d5e15276"></a>
+ <p>
+As a <a class="link" href="ref_guide_conf_plugins.html" title="4. Plugin Configuration">plugin string</a>, this property
+can be used to configure the <code class="classname"> BrokerImpl</code> with the
+following properties:
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+ <p>
+<code class="literal">EvictFromDataCache</code>: When evicting an object through the
+<code class="methodname">OpenJPAEntityManager.evict</code> methods, whether to also
+evict it from the OpenJPA's <a class="link" href="ref_guide_caching.html#ref_guide_cache" title="1. Data Cache">data cache</a>.
+Defaults to <code class="literal">false</code>.
+ </p>
+ </li></ul></div>
+ <div class="example"><a name="ref_guide_runtime_pm_evictex"></a><p class="title"><b>Example 9.1.
+ Evict from Data Cache
+ </b></p><div class="example-contents">
+
+<pre class="programlisting">
+<property name="openjpa.BrokerImpl" value="EvictFromDataCache=true"/>
+</pre>
+ </div></div><br class="example-break">
+ <p>
+Additionally, some advanced users may want to add capabilities to OpenJPA's
+internal <a class="ulink" href="../javadoc/org/apache/openjpa/kernel/BrokerImpl.html" target="_top">
+<code class="classname">org.apache.openjpa.kernel.BrokerImpl</code></a>. You can
+configure OpenJPA to use a custom subclass of <code class="classname">BrokerImpl</code>
+with the <a class="link" href="ref_guide_conf_openjpa.html#openjpa.BrokerImpl" title="5.4. openjpa.BrokerImpl"><code class="literal">openjpa.BrokerImpl
+</code></a> configuration property. Set this property to the full class
+name of your custom subclass. When implementing your subclass, consider the
+finalization issues mentioned in
+<a class="xref" href="ref_guide_runtime.html#ref_guide_runtime_broker_finalization" title="1.1. Broker Finalization">Section 1.1, “
+ Broker Finalization
+ ”</a>. It may be appropriate
+to create a subtype of both
+<a class="ulink" href="../javadoc/org/apache/openjpa/kernel/BrokerImpl.html" target="_top">
+<code class="classname">org.apache.openjpa.kernel.BrokerImpl</code></a> and
+<a class="ulink" href="../javadoc/org/apache/openjpa/kernel/FinalizingBrokerImpl.html" target="_top">
+<code class="classname">org.apache.openjpa.kernel.FinalizingBrokerImpl</code></a>.
+ </p>
+ </div>
+ </div>
+
+
+
+
+
+
+
+
+
+</div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ref_guide_enterprise_xa.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref_guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ref_guide_runtime_jpa.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">3.
+ XA Transactions
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 2.
+ JPA Extensions
+ </td></tr></table></div></body></html>
\ No newline at end of file
Propchange: websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_runtime.html
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_runtime_jpa.html
==============================================================================
--- websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_runtime_jpa.html (added)
+++ websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_runtime_jpa.html Wed May 14 22:22:23 2014
@@ -0,0 +1,242 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>2. JPA Extensions</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"><link rel="home" href="manual.html" title="Apache OpenJPA 2.3 User's Guide"><link rel="up" href="ref_guide_runtime.html" title="Chapter 9. Runtime Extensions"><link rel="prev" href="ref_guide_runtime.html" title="Chapter 9. Runtime Extensions"><link rel="next" href="ref_guide_locking.html" title="3. Object Locking"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">2.
+ JPA Extensions
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ref_guide_runtime.html">Prev</a> </td><th width="60%" align="center">Chapter 9.
+ Runtime Extensions
+ </th><td width="20%" align="right"> <a accesskey="n" href="ref_guide_locking.html">Next</a></td></tr></table><hr></div><div class="section" title="2. JPA Extensions"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="ref_guide_runtime_jpa">2.
+ JPA Extensions
+ </h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="ref_guide_runtime_jpa.html#ref_guide_runtime_emfactory">2.1.
+ OpenJPAEntityManagerFactory
+ </a></span></dt><dt><span class="section"><a href="ref_guide_runtime_jpa.html#ref_guide_runtime_em">2.2.
+ OpenJPAEntityManager
+ </a></span></dt><dt><span class="section"><a href="ref_guide_runtime_jpa.html#ref_guide_runtime_jpaquery">2.3.
+ OpenJPAQuery
+ </a></span></dt><dt><span class="section"><a href="ref_guide_runtime_jpa.html#ref_guide_runtime_jpaextent">2.4.
+ Extent
+ </a></span></dt><dt><span class="section"><a href="ref_guide_runtime_jpa.html#ref_guide_runtime_jpacache">2.5.
+ StoreCache
+ </a></span></dt><dt><span class="section"><a href="ref_guide_runtime_jpa.html#ref_guide_runtime_jpaquerycache">2.6.
+ QueryResultCache
+ </a></span></dt><dt><span class="section"><a href="ref_guide_runtime_jpa.html#ref_guide_runtime_jpafetch">2.7.
+ FetchPlan
+ </a></span></dt><dt><span class="section"><a href="ref_guide_runtime_jpa.html#ref_guide_runtime_openjpaentitytransaction">2.8.
+ OpenJPAEntityTransaction
+ </a></span></dt><dt><span class="section"><a href="ref_guide_runtime_jpa.html#ref_guide_runtime_openjpapersistence">2.9.
+ OpenJPAPersistence
+ </a></span></dt></dl></div>
+
+ <p>
+The following sections outline the runtime interfaces you can use to access
+OpenJPA-specific functionality from JPA. Each interface contains services and
+convenience methods missing from the JPA specification. OpenJPA strives to use
+the same naming conventions and API patterns as standard JPA methods in all
+extensions, so that OpenJPA extension APIs feel as much as possible like
+standard JPA.
+ </p>
+ <p>
+You may have noticed the examples throughout this document using the
+<code class="methodname">OpenJPAPersistence.cast</code> methods to cast from standard
+JPA interfaces to OpenJPA extended interfaces. This is the recommended practice.
+Some application server vendors may proxy OpenJPA's JPA implementation,
+preventing a straight cast. <code class="classname">OpenJPAPersistence</code>'s
+<code class="methodname">cast</code> methods work around these proxies.
+ </p>
+<pre class="programlisting">
+public static OpenJPAEntityManagerFactory cast(EntityManagerFactory emf);
+public static OpenJPAEntityManager cast(EntityManager em);
+public static OpenJPAQuery cast(Query q);
+</pre>
+ <p>
+We provide additional information on the <code class="classname">OpenJPAPersistence
+</code> helper <a class="link" href="ref_guide_runtime_jpa.html#ref_guide_runtime_openjpapersistence" title="2.9. OpenJPAPersistence">
+below</a>.
+ </p>
+ <div class="section" title="2.1. OpenJPAEntityManagerFactory"><div class="titlepage"><div><div><h3 class="title" id="ref_guide_runtime_emfactory">2.1.
+ OpenJPAEntityManagerFactory
+ </h3></div></div></div>
+
+ <a class="indexterm" name="d5e15316"></a>
+ <a class="indexterm" name="d5e15318"></a>
+ <p>
+The <code class="classname">org.apache.openjpa.persistence.OpenJPAEntityManagerFactory
+</code> interface extends the basic <code class="classname">
+javax.persistence.EntityManagerFactory</code> with OpenJPA-specific
+features. The <code class="classname">OpenJPAEntityManagerFactory</code> offers APIs to
+access the OpenJPA data and query caches and to perform other OpenJPA-specific
+operations. See the
+<a class="ulink" href="../javadoc/org/apache/openjpa/persistence/OpenJPAEntityManagerFactory.html" target="_top">
+interface Javadoc</a> for details.
+ </p>
+ </div>
+ <div class="section" title="2.2. OpenJPAEntityManager"><div class="titlepage"><div><div><h3 class="title" id="ref_guide_runtime_em">2.2.
+ OpenJPAEntityManager
+ </h3></div></div></div>
+
+ <a class="indexterm" name="d5e15329"></a>
+ <a class="indexterm" name="d5e15331"></a>
+ <p>
+All OpenJPA <code class="classname">EntityManager</code>s implement the
+<a class="ulink" href="../javadoc/org/apache/openjpa/persistence/OpenJPAEntityManager.html" target="_top">
+<code class="classname">org.apache.openjpa.persistence.OpenJPAEntityManager</code>
+</a> interface. This interface extends the standard <code class="classname">
+javax.persistence.EntityManager</code>. Just as the standard <code class="classname">
+EntityManager</code> is the primary window into JPA services, the
+<code class="classname">OpenJPAEntityManager</code> is the primary window from JPA into
+OpenJPA-specific functionality. We strongly encourage you to investigate the API
+extensions this interface contains.
+ </p>
+ </div>
+ <div class="section" title="2.3. OpenJPAQuery"><div class="titlepage"><div><div><h3 class="title" id="ref_guide_runtime_jpaquery">2.3.
+ OpenJPAQuery
+ </h3></div></div></div>
+
+ <a class="indexterm" name="d5e15344"></a>
+ <a class="indexterm" name="d5e15346"></a>
+ <p>
+OpenJPA extends JPA's standard query functionality with the <code class="classname">
+org.apache.openjpa.persistence.OpenJPAQuery</code> interface. See its
+<a class="ulink" href="../javadoc/org/apache/openjpa/persistence/OpenJPAQuery.html" target="_top">Javadoc
+</a> for details on the convenience methods it provides.
+ </p>
+ </div>
+ <div class="section" title="2.4. Extent"><div class="titlepage"><div><div><h3 class="title" id="ref_guide_runtime_jpaextent">2.4.
+ Extent
+ </h3></div></div></div>
+
+ <a class="indexterm" name="d5e15355"></a>
+ <a class="indexterm" name="d5e15357"></a>
+ <p>
+An <code class="classname">Extent</code> is a logical view of all persistent instances
+of a given entity class, possibly including subclasses. OpenJPA adds the
+<a class="ulink" href="../javadoc/org/apache/openjpa/persistence/Extent.html" target="_top"><code class="classname">
+org.apache.openjpa.persistence.Extent</code></a> class to the set of
+Java Persistence APIs. The following code illustrates iterating over all
+instances of the <code class="classname">Magazine</code> entity, without subclasses:
+ </p>
+ <div class="example"><a name="ref_guide_runtime_jpaextentex"></a><p class="title"><b>Example 9.2.
+ Using a JPA Extent
+ </b></p><div class="example-contents">
+
+<pre class="programlisting">
+import org.apache.openjpa.persistence.*;
+
+...
+
+OpenJPAEntityManager kem = OpenJPAPersistence.cast(em);
+Extent<Magazine> mags = kem.createExtent(Magazine.class, false);
+for (Magazine m : mags)
+ processMagazine(m);
+</pre>
+ </div></div><br class="example-break">
+ </div>
+ <div class="section" title="2.5. StoreCache"><div class="titlepage"><div><div><h3 class="title" id="ref_guide_runtime_jpacache">2.5.
+ StoreCache
+ </h3></div></div></div>
+
+ <a class="indexterm" name="d5e15371"></a>
+ <p>
+In addition to the <code class="classname">EntityManager</code> object cache the JPA
+specification provides access to a second level cache via the
+javax.persistence.Cache interface. OpenJPA provides further extensions via
+the org.apache.openjpa.persistence.StoreCache interface documented at
+<a class="ulink" href="../javadoc/org/apache/openjpa/persistence/StoreCache.html" target="_top">
+<code class="classname">org.apache.openjpa.persistence.StoreCache</code></a>.
+<a class="xref" href="ref_guide_caching.html#ref_guide_cache" title="1. Data Cache">Section 1, “
+ Data Cache
+ ”</a> has detailed information on OpenJPA's
+data caching system, including the <code class="classname">StoreCache</code> facade.
+ </p>
+ </div>
+ <div class="section" title="2.6. QueryResultCache"><div class="titlepage"><div><div><h3 class="title" id="ref_guide_runtime_jpaquerycache">2.6.
+ QueryResultCache
+ </h3></div></div></div>
+
+ <a class="indexterm" name="d5e15381"></a>
+ <p>
+OpenJPA can cache query results as well as persistent object data. The
+<a class="ulink" href="../javadoc/org/apache/openjpa/persistence/QueryResultCache.html" target="_top">
+<code class="classname">org.apache.openjpa.persistence.QueryResultCache</code></a>
+is an JPA-flavored facade to OpenJPA's internal query cache. See
+<a class="xref" href="ref_guide_caching.html#ref_guide_cache_query" title="1.4. Query Cache">Section 1.4, “
+ Query Cache
+ ”</a> for details on query caching in
+OpenJPA.
+ </p>
+ </div>
+ <div class="section" title="2.7. FetchPlan"><div class="titlepage"><div><div><h3 class="title" id="ref_guide_runtime_jpafetch">2.7.
+ FetchPlan
+ </h3></div></div></div>
+
+ <a class="indexterm" name="d5e15389"></a>
+ <a class="indexterm" name="d5e15391"></a>
+ <p>
+Many of the aforementioned OpenJPA interfaces give you access to an <code class="classname">
+org.apache.openjpa.persistence.FetchPlan</code> instance. The <code class="classname">
+FetchPlan</code> allows you to exercise some control over how objects are
+fetched from the datastore, including <a class="link" href="ref_guide_dbsetup_lrs.html" title="10. Large Result Sets">
+large result set support</a>, <a class="link" href="ref_guide_fetch.html" title="7. Fetch Groups">custom fetch
+groups</a>, and <a class="link" href="ref_guide_locking.html" title="3. Object Locking">lock levels</a>.
+ </p>
+ <p>
+OpenJPA goes one step further, extending <code class="classname">FetchPlan</code> with
+<a class="ulink" href="../javadoc/org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" target="_top">
+<code class="classname">org.apache.openjpa.persistence.jdbc.JDBCFetchPlan</code></a>
+to add additional JDBC-specific tuning methods. Unless you have customized
+OpenJPA to use a non-relational back-end (see
+<a class="xref" href="ref_guide_enterprise_abstractstore.html" title="8. Non-Relational Stores">Section 8, “
+ Non-Relational Stores
+ ”</a> ), all <code class="classname">
+FetchPlan</code>s in OpenJPA implement <code class="classname">
+JDBCFetchPlan</code>, so feel free to cast to this interface.
+ </p>
+ <p>
+Fetch plans pass on from parent components to child components. The <code class="classname">
+EntityManagerFactory</code> settings (via your configuration properties)
+for things like the fetch size, result set type, and custom fetch groups are
+passed on to the fetch plan of the <code class="classname">EntityManager</code>s it
+produces. The settings of each <code class="classname">EntityManager</code>, in turn,
+are passed on to each <code class="classname">Query</code> and <code class="classname">Extent
+</code> it returns. Note that the opposite, however, is not true. Modifying
+the fetch plan of a <code class="classname">Query</code> or <code class="classname">Extent
+</code> does not affect the <code class="classname">EntityManager</code>'s
+configuration. Likewise, modifying an <code class="classname">EntityManager</code>'s
+configuration does not affect the <code class="classname"> EntityManagerFactory</code>.
+ </p>
+ <p>
+<a class="xref" href="ref_guide_fetch.html" title="7. Fetch Groups">Section 7, “
+ Fetch Groups
+ ”</a> includes examples using <code class="classname">
+FetchPlan</code>s.
+ </p>
+ </div>
+ <div class="section" title="2.8. OpenJPAEntityTransaction"><div class="titlepage"><div><div><h3 class="title" id="ref_guide_runtime_openjpaentitytransaction">2.8.
+ OpenJPAEntityTransaction
+ </h3></div></div></div>
+
+ <a class="indexterm" name="d5e15423"></a>
+ <p>
+<a class="ulink" href="../javadoc/org/apache/openjpa/persistence/OpenJPAEntityTransaction.html" target="_top">
+<code class="classname">org.apache.openjpa.persistence.OpenJPAEntityTransaction</code></a>
+extends <code class="classname">javax.persistence.EntityTransaction</code> to provide
+additional transaction-debugging capabilities and some concurrency-related
+commit and rollback features.
+ </p>
+ </div>
+ <div class="section" title="2.9. OpenJPAPersistence"><div class="titlepage"><div><div><h3 class="title" id="ref_guide_runtime_openjpapersistence">2.9.
+ OpenJPAPersistence
+ </h3></div></div></div>
+
+ <a class="indexterm" name="d5e15431"></a>
+ <p>
+<a class="ulink" href="../javadoc/org/apache/openjpa/persistence/OpenJPAPersistence.html" target="_top">
+<code class="classname">org.apache.openjpa.persistence.OpenJPAPersistence</code></a>
+is a static helper class that adds OpenJPA-specific utility methods to
+<code class="classname">javax.persistence.Persistence</code>.
+ </p>
+ </div>
+ </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ref_guide_runtime.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref_guide_runtime.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ref_guide_locking.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 9.
+ Runtime Extensions
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 3.
+ Object Locking
+ </td></tr></table></div></body></html>
\ No newline at end of file
Propchange: websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_runtime_jpa.html
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_runtime_pm_event.html
==============================================================================
--- websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_runtime_pm_event.html (added)
+++ websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_runtime_pm_event.html Wed May 14 22:22:23 2014
@@ -0,0 +1,42 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>7. Transaction Events</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"><link rel="home" href="manual.html" title="Apache OpenJPA 2.3 User's Guide"><link rel="up" href="ref_guide_runtime.html" title="Chapter 9. Runtime Extensions"><link rel="prev" href="ref_guide_sequence.html" title="6. Generators"><link rel="next" href="ref_guide_enterprise_abstractstore.html" title="8. Non-Relational Stores"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">7.
+ Transaction Events
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ref_guide_sequence.html">Prev</a> </td><th width="60%" align="center">Chapter 9.
+ Runtime Extensions
+ </th><td width="20%" align="right"> <a accesskey="n" href="ref_guide_enterprise_abstractstore.html">Next</a></td></tr></table><hr></div><div class="section" title="7. Transaction Events"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="ref_guide_runtime_pm_event">7.
+ Transaction Events
+ </h2></div></div></div>
+
+ <a class="indexterm" name="d5e15857"></a>
+ <p>
+The OpenJPA runtime supports broadcasting transaction-related events. By
+registering one or more
+<a class="ulink" href="../javadoc/org/apache/openjpa/event/TransactionListener.html" target="_top">
+<code class="classname">org.apache.openjpa.event.TransactionListener</code></a> s,
+you can receive notifications when transactions begin, flush, rollback, commit,
+and more. Where appropriate, event notifications include the set of
+persistence-capable objects participating in the transaction.
+ </p>
+<pre class="programlisting">
+public void addTransactionListener(Object listener);
+public void removeTransactionListener(Object listener);
+</pre>
+ <p>
+These <code class="classname">OpenJPAEntityManagerSPI</code> methods allow you to add
+and remove listeners. These methods are outside the bounds of the published OpenJPA APIs, and are subject to change in the future.
+ </p>
+ <p>
+For details on the transaction framework, see the <code class="literal">
+org.apache.openjpa.event</code> package
+<a class="ulink" href="../javadoc/org/apache/openjpa/event/package-summary.html" target="_top">Javadoc</a>.
+Also see <a class="xref" href="ref_guide_event.html" title="2. Remote Event Notification Framework">Section 2, “
+ Remote Event Notification Framework
+ ”</a> for a description of OpenJPA's
+remote event support.
+ </p>
+ </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ref_guide_sequence.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref_guide_runtime.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ref_guide_enterprise_abstractstore.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">6.
+ Generators
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 8.
+ Non-Relational Stores
+ </td></tr></table></div></body></html>
\ No newline at end of file
Propchange: websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_runtime_pm_event.html
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_savepoints.html
==============================================================================
--- websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_savepoints.html (added)
+++ websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_savepoints.html Wed May 14 22:22:23 2014
@@ -0,0 +1,143 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>4. Savepoints</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"><link rel="home" href="manual.html" title="Apache OpenJPA 2.3 User's Guide"><link rel="up" href="ref_guide_runtime.html" title="Chapter 9. Runtime Extensions"><link rel="prev" href="ref_guide_locking.html" title="3. Object Locking"><link rel="next" href="ref_guide_enterprise_methodql.html" title="5. MethodQL"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">4.
+ Savepoints
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ref_guide_locking.html">Prev</a> </td><th width="60%" align="center">Chapter 9.
+ Runtime Extensions
+ </th><td width="20%" align="right"> <a accesskey="n" href="ref_guide_enterprise_methodql.html">Next</a></td></tr></table><hr></div><div class="section" title="4. Savepoints"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="ref_guide_savepoints">4.
+ Savepoints
+ </h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="ref_guide_savepoints.html#reg_guide_savepoints_using">4.1.
+ Using Savepoints
+ </a></span></dt><dt><span class="section"><a href="ref_guide_savepoints.html#ref_guide_savepoints_conf">4.2.
+ Configuring Savepoints
+ </a></span></dt></dl></div>
+
+ <a class="indexterm" name="d5e15614"></a>
+ <p>
+Savepoints allow for fine grained control over the transactional behavior of
+your application. OpenJPA's savepoint API allow you to set intermediate rollback
+points in your transaction. You can then choose to rollback changes made only
+after a specific savepoint, then commit or continue making new changes in the
+transaction. This feature is useful for multi-stage transactions, such as
+editing a set of objects over several web pages or user screens. Savepoints also
+provide more flexibility to conditional transaction behavior, such as choosing to
+commit or rollback a portion of the transaction based on the results of the
+changes. This chapter describes how to use and configure OpenJPA savepoints.
+ </p>
+ <div class="section" title="4.1. Using Savepoints"><div class="titlepage"><div><div><h3 class="title" id="reg_guide_savepoints_using">4.1.
+ Using Savepoints
+ </h3></div></div></div>
+
+ <p>
+OpenJPA's
+<a class="ulink" href="../javadoc/org/apache/openjpa/persistence/OpenJPAEntityManager.html" target="_top">
+<code class="classname">OpenJPAEntityManager</code></a> have the following
+methods to control savepoint behavior. Note that the savepoints work in tandem
+with the current transaction. This means that savepoints require an open
+transaction, and that a rollback of the transaction will rollback all of the
+changes in the transaction regardless of any savepoints set.
+ </p>
+<pre class="programlisting">
+void setSavepoint(String name);
+void releaseSavepoint(String name);
+void rollbackToSavepoint(String name);
+</pre>
+ <p>
+To set a savepoint, simply call <code class="methodname">setSavepoint</code>, passing
+in a symbolic savepoint name. This savepoint will define a point at which you
+can preserve the state of transactional objects for the duration of the current
+transaction.
+ </p>
+ <p>
+Having set a named savepoint, you can rollback changes made after that point by
+calling <code class="methodname">rollbackToSavepoint</code>. This method will keep the
+current transaction active, while restoring all transactional instances back to
+their saved state. Instances that were deleted after the save point will no
+longer be marked for deletion. Similarly, transient instances that were made
+persistent after the savepoint will become transient again. Savepoints made
+after this savepoint will be released and no longer valid, although you can
+still set new savepoints. Savepoints will also be cleared after the current
+transaction is committed or rolled back.
+ </p>
+ <p>
+If a savepoint is no longer needed, you can release any resources it is
+consuming resources by calling <code class="methodname">releaseSavepoint</code>. This
+method should not be called for savepoints that have been
+released automatically through other means, such as commit of a transaction or
+rollback to a prior savepoint. While savepoints made after this savepoint will
+also be released, there are no other effects on the current transaction.
+ </p>
+ <p>
+The following simple example illustrates setting, releasing, and rolling back to
+a savepoint.
+ </p>
+ <div class="example"><a name="ref_guide_savepoints_example"></a><p class="title"><b>Example 9.7.
+ Using Savepoints
+ </b></p><div class="example-contents">
+
+<pre class="programlisting">
+import org.apache.openjpa.persistence.*;
+
+...
+
+OpenJPAEntityManager oem = OpenJPAPersistence.cast(em);
+oem.getTransaction().begin();
+
+Magazine mag = oem.find(Magazine.class, id);
+mag.setPageCount(300);
+oem.setSavepoint("pages");
+
+mag.setPrice(mag.getPageCount() * pricePerPage);
+// we decide to release "pages"...
+oem.releaseSavepoint("pages");
+// ... and set a new savepoint which includes all changes
+oem.setSavepoint("price");
+
+mag.setPrice(testPrice);
+// we determine the test price is not good
+oem.rollbackToSavepoint("price");
+// had we chosen to not release "pages", we might have rolled back to
+// "pages" instead
+
+// the price is now restored to mag.getPageCount() * pricePerPage
+oem.getTransaction().commit();
+</pre>
+ </div></div><br class="example-break">
+ </div>
+ <div class="section" title="4.2. Configuring Savepoints"><div class="titlepage"><div><div><h3 class="title" id="ref_guide_savepoints_conf">4.2.
+ Configuring Savepoints
+ </h3></div></div></div>
+
+ <p>
+OpenJPA uses the
+<a class="ulink" href="../javadoc/org/apache/openjpa/kernel/SavepointManager" target="_top">
+<code class="classname">org.apache.openjpa.kernel.SavepointManager</code></a>
+<a class="link" href="ref_guide_conf_plugins.html" title="4. Plugin Configuration">plugin</a> to handle preserving the
+savepoint state. OpenJPA includes the following <code class="classname">SavepointManager
+</code> plugins:
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+ <p>
+<code class="literal">in-mem</code>: The default. This is an alias for the
+<a class="ulink" href="../javadoc/org/apache/openjpa/kernel/InMemorySavepointManager.html" target="_top"><code class="classname">
+org.apache.openjpa.kernel.InMemorySavepointManager</code></a>. This
+plugin stores all state, including field values, in memory. Due to this
+behavior, each set savepoint is designed for small to medium transactional
+object counts.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">jdbc</code>: This is an alias for the
+<a class="ulink" href="../javadoc/org/apache/openjpa/jdbc/kernel/JDBC3SavepointManager.html" target="_top"><code class="classname">
+org.apache.openjpa.jdbc.kernel.JDBC3SavepointManager</code></a>. This
+plugin requires <code class="literal">JDBC 3</code> and <code class="classname"> java.sql.Savepoint
+</code> support to operate. Note that this plugin implements savepoints by
+issuing a flush to the database.
+ </p>
+ </li></ul></div>
+ </div>
+ </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ref_guide_locking.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref_guide_runtime.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ref_guide_enterprise_methodql.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">3.
+ Object Locking
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 5.
+ MethodQL
+ </td></tr></table></div></body></html>
\ No newline at end of file
Propchange: websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_savepoints.html
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_schema_def.html
==============================================================================
--- websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_schema_def.html (added)
+++ websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_schema_def.html Wed May 14 22:22:23 2014
@@ -0,0 +1,47 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>11. Default Schema</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"><link rel="home" href="manual.html" title="Apache OpenJPA 2.3 User's Guide"><link rel="up" href="ref_guide_dbsetup.html" title="Chapter 4. JDBC"><link rel="prev" href="ref_guide_dbsetup_lrs.html" title="10. Large Result Sets"><link rel="next" href="ref_guide_schema_info.html" title="12. Schema Reflection"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">11.
+ Default Schema
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ref_guide_dbsetup_lrs.html">Prev</a> </td><th width="60%" align="center">Chapter 4.
+ JDBC
+ </th><td width="20%" align="right"> <a accesskey="n" href="ref_guide_schema_info.html">Next</a></td></tr></table><hr></div><div class="section" title="11. Default Schema"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="ref_guide_schema_def">11.
+ Default Schema
+ </h2></div></div></div>
+
+ <a class="indexterm" name="d5e11705"></a>
+ <p>
+It is common to duplicate a database model in multiple schemas. You may have one
+schema for development and another for production, or different database users
+may access different schemas. OpenJPA facilitates these patterns with the
+<a class="link" href="ref_guide_conf_jdbc.html#openjpa.jdbc.Schema" title="6.12. openjpa.jdbc.Schema"><code class="literal">openjpa.jdbc.Schema</code>
+</a> configuration property. This property establishes a default schema for
+any unqualified table names, allowing you to leave schema names out of your
+mapping definitions.
+ </p>
+ <p>
+The <code class="literal">Schema</code> property also establishes the default schema for
+new tables created through OpenJPA tools, such as the mapping tool covered in
+<a class="xref" href="ref_guide_mapping.html#ref_guide_mapping_mappingtool" title="1. Forward Mapping">Section 1, “
+ Forward Mapping
+ ”</a>.
+ </p>
+ <p>
+If the entities are mapped to the same table name but with different schema
+name within one <code class="literal">PersistenceUnit</code> intentionally, and the
+strategy of <code class="literal">GeneratedType.AUTO</code> is used to generate the ID
+for each entity, a schema name for each entity must be explicitly declared
+either through the annotation or the mapping.xml file. Otherwise, the mapping
+tool only creates the tables for those entities with the schema names under
+each schema. In addition, there will be only one
+<code class="literal">OPENJPA_SEQUENCE_TABLE</code> created for all the entities within
+the <code class="literal">PersistenceUnit</code> if the entities are not identified
+with the schema name.
+Read <a class="xref" href="ref_guide_sequence.html" title="6. Generators">Section 6, “
+ Generators
+ ”</a> in the Reference Guide.
+ </p>
+ </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ref_guide_dbsetup_lrs.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref_guide_dbsetup.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ref_guide_schema_info.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">10.
+ Large Result Sets
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 12.
+ Schema Reflection
+ </td></tr></table></div></body></html>
\ No newline at end of file
Propchange: websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_schema_def.html
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_schema_info.html
==============================================================================
--- websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_schema_info.html (added)
+++ websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_schema_info.html Wed May 14 22:22:23 2014
@@ -0,0 +1,162 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>12. Schema Reflection</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"><link rel="home" href="manual.html" title="Apache OpenJPA 2.3 User's Guide"><link rel="up" href="ref_guide_dbsetup.html" title="Chapter 4. JDBC"><link rel="prev" href="ref_guide_schema_def.html" title="11. Default Schema"><link rel="next" href="ref_guide_schema_schematool.html" title="13. Schema Tool"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">12.
+ Schema Reflection
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ref_guide_schema_def.html">Prev</a> </td><th width="60%" align="center">Chapter 4.
+ JDBC
+ </th><td width="20%" align="right"> <a accesskey="n" href="ref_guide_schema_schematool.html">Next</a></td></tr></table><hr></div><div class="section" title="12. Schema Reflection"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="ref_guide_schema_info">12.
+ Schema Reflection
+ </h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="ref_guide_schema_info.html#ref_guide_schema_info_list">12.1.
+ Schemas List
+ </a></span></dt><dt><span class="section"><a href="ref_guide_schema_info.html#ref_guide_schema_info_factory">12.2.
+ Schema Factory
+ </a></span></dt></dl></div>
+
+ <a class="indexterm" name="d5e11722"></a>
+ <p>
+OpenJPA needs information about your database schema for two reasons. First, it
+can use schema information at runtime to validate that your schema is compatible
+with your persistent class definitions. Second, OpenJPA requires schema
+information during development so that it can manipulate the schema to match
+your object model. OpenJPA uses the <code class="literal">SchemaFactory</code> interface
+to provide runtime mapping information, and the <code class="classname">SchemaTool
+</code> for development-time data. Each is presented below.
+ </p>
+ <div class="section" title="12.1. Schemas List"><div class="titlepage"><div><div><h3 class="title" id="ref_guide_schema_info_list">12.1.
+ Schemas List
+ </h3></div></div></div>
+
+ <a class="indexterm" name="d5e11730"></a>
+ <a class="indexterm" name="d5e11732"></a>
+ <p>
+By default, schema reflection acts on all the schemas your JDBC driver can
+"see". You can limit the schemas and tables OpenJPA acts on with the <code class="literal">
+openjpa.jdbc.Schemas</code> configuration property. This property accepts a
+comma-separated list of schemas and tables. To list a schema, list its name. To
+list a table, list its full name in the form <code class="literal">
+<schema-name>.<table-name></code>. If a table does not have a
+schema or you do not know its schema, list its name as <code class="literal">
+.<table-name></code> (notice the preceding '.'). For example, to list
+the <code class="literal">BUSOBJS</code> schema, the <code class="literal">ADDRESS</code> table in
+the <code class="literal">GENERAL</code> schema, and the <code class="literal">SYSTEM_INFO</code>
+table, regardless of what schema it is in, use the string:
+ </p>
+<pre class="programlisting">
+BUSOBJS,GENERAL.ADDRESS,.SYSTEM_INFO
+</pre>
+ <div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3>
+ <p>
+Some databases are case-sensitive with respect to schema and table names.
+Oracle, for example, requires names in all upper case.
+ </p>
+ </div>
+ </div>
+ <div class="section" title="12.2. Schema Factory"><div class="titlepage"><div><div><h3 class="title" id="ref_guide_schema_info_factory">12.2.
+ Schema Factory
+ </h3></div></div></div>
+
+ <a class="indexterm" name="d5e11748"></a>
+ <p>
+OpenJPA relies on the
+<a class="ulink" href="../javadoc/org/apache/openjpa/jdbc/schema/SchemaFactory.html" target="_top">
+<code class="classname">openjpa.jdbc.SchemaFactory</code></a> interface for runtime
+schema information. You can control the schema factory OpenJPA uses through the
+<code class="literal">openjpa.jdbc.SchemaFactory</code> property. There are several
+built-in options to choose from:
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+ <p>
+<code class="literal">dynamic</code>: This is the default setting. It is an alias for the
+<a class="ulink" href="../javadoc/org/apache/openjpa/jdbc/schema/DynamicSchemaFactory.html" target="_top">
+<code class="classname">
+org.apache.openjpa.jdbc.schema.DynamicSchemaFactory</code></a>. The
+<code class="classname">DynamicSchemaFactory</code> is the most performant
+schema factory, because it does not validate mapping information against the
+database. Instead, it assumes all object-relational mapping information is
+correct, and dynamically builds an in-memory representation of the schema from
+your mapping metadata. When using this factory, it is important that your
+mapping metadata correctly represent your database's foreign key constraints so
+that OpenJPA can order its SQL statements to meet them.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">native</code>: This is an alias for the
+<a class="ulink" href="../javadoc/org/apache/openjpa/jdbc/schema/LazySchemaFactory.html" target="_top">
+<code class="classname">org.apache.openjpa.jdbc.schema.LazySchemaFactory</code></a>
+. As persistent classes are loaded by the application, OpenJPA reads their
+metadata and object-relational mapping information. This factory uses the
+<code class="classname">java.sql.DatabaseMetaData</code> interface to reflect on the
+schema and ensure that it is consistent with the mapping data being read.
+Use this factory if you want up-front validation that your mapping metadata is
+consistent with the database during development. This factory accepts the
+following important properties:
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem">
+ <p>
+<code class="literal">ForeignKeys</code>: Set to <code class="literal">true</code> to automatically
+read foreign key information during schema validation.
+ </p>
+ </li></ul></div>
+ </li><li class="listitem">
+ <p>
+<code class="literal">table</code>: This is an alias for the
+<a class="ulink" href="../javadoc/org/apache/openjpa/jdbc/schema/TableSchemaFactory.html" target="_top">
+<code class="classname">org.apache.openjpa.jdbc.schema.TableSchemaFactory</code></a>
+. This schema factory stores schema information as an XML document in a database
+table it creates for this purpose. If your JDBC driver doesn't support the
+<code class="classname">java.sql.DatabaseMetaData</code> standard interface, but you
+still want some schema validation to occur at runtime, you might use this
+factory. It is not recommended for most users, though, because it is easy for
+the stored XML schema definition to get out-of-synch with the actual database.
+This factory accepts the following properties:
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem">
+ <p>
+<code class="literal">Table</code>: The name of the table to create to store schema
+information. Defaults to <code class="literal">OPENJPA_SCHEMA</code>.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">PrimaryKeyColumn</code>: The name of the table's numeric primary
+key column. Defaults to <code class="literal">ID</code>.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">SchemaColumn</code>: The name of the table's string column for
+holding the schema definition as an XML string. Defaults to <code class="literal">SCHEMA_DEF
+</code>.
+ </p>
+ </li></ul></div>
+ </li><li class="listitem">
+ <p>
+<code class="literal">file</code>: This is an alias for the
+<a class="ulink" href="../javadoc/org/apache/openjpa/jdbc/schema/FileSchemaFactory.html" target="_top">
+<code class="classname">org.apache.openjpa.jdbc.schema.FileSchemaFactory</code></a>
+. This factory is a lot like the <code class="classname">TableSchemaFactory</code>, and
+has the same advantages and disadvantages. Instead of storing its XML schema
+definition in a database table, though, it stores it in a file. This factory
+accepts the following properties:
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem">
+ <p>
+<code class="literal">File</code>: The resource name of the XML schema file. By default,
+the factory looks for a resource called <code class="filename"> package.schema</code>,
+located in any top-level directory of the <code class="literal">CLASSPATH</code> or in the
+top level of any jar in your <code class="literal">CLASSPATH</code>.
+ </p>
+ </li></ul></div>
+ </li></ul></div>
+ <p>
+You can switch freely between schema factories at any time. The XML file format
+used by some factories is detailed in <a class="xref" href="ref_guide_schema_xml.html" title="14. XML Schema Format">Section 14, “
+ XML Schema Format
+ ”</a>
+. As with any OpenJPA plugin, you can also implement your own schema
+factory if you have needs not met by the existing options.
+ </p>
+ </div>
+ </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ref_guide_schema_def.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref_guide_dbsetup.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ref_guide_schema_schematool.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">11.
+ Default Schema
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 13.
+ Schema Tool
+ </td></tr></table></div></body></html>
\ No newline at end of file
Propchange: websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_schema_info.html
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_schema_schematool.html
==============================================================================
--- websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_schema_schematool.html (added)
+++ websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_schema_schematool.html Wed May 14 22:22:23 2014
@@ -0,0 +1,281 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>13. Schema Tool</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"><link rel="home" href="manual.html" title="Apache OpenJPA 2.3 User's Guide"><link rel="up" href="ref_guide_dbsetup.html" title="Chapter 4. JDBC"><link rel="prev" href="ref_guide_schema_info.html" title="12. Schema Reflection"><link rel="next" href="ref_guide_schema_xml.html" title="14. XML Schema Format"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">13.
+ Schema Tool
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ref_guide_schema_info.html">Prev</a> </td><th width="60%" align="center">Chapter 4.
+ JDBC
+ </th><td width="20%" align="right"> <a accesskey="n" href="ref_guide_schema_xml.html">Next</a></td></tr></table><hr></div><div class="section" title="13. Schema Tool"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="ref_guide_schema_schematool">13.
+ Schema Tool
+ </h2></div></div></div>
+
+ <a class="indexterm" name="d5e11809"></a>
+ <a class="indexterm" name="d5e11812"></a>
+ <a class="indexterm" name="d5e11816"></a>
+ <a class="indexterm" name="d5e11820"></a>
+ <p>
+Most users will only access the schema tool indirectly, through the interfaces
+provided by other tools. You may find, however, that the schema tool is a
+powerful utility in its own right. The schema tool has two functions:
+ </p>
+ <div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
+ <p>
+To reflect on the current database schema, optionally translating it to an XML
+representation for further manipulation.
+ </p>
+ </li><li class="listitem">
+ <p>
+To take in an XML schema definition, calculate the differences between the XML
+and the existing database schema, and apply the necessary changes to make the
+database match the XML.
+ </p>
+ </li></ol></div>
+ <p>
+The <a class="link" href="ref_guide_schema_xml.html" title="14. XML Schema Format">XML format</a> used by the schema
+tool abstracts away the differences between SQL dialects used by different
+database vendors. The tool also automatically adapts its SQL to meet foreign key
+dependencies. Thus the schema tool is useful as a general way to manipulate
+schemas.
+ </p>
+ <p>
+You can invoke the schema tool through its Java class,
+<a class="ulink" href="../javadoc/org/apache/openjpa/jdbc/schema/SchemaTool.html" target="_top">
+<code class="classname">org.apache.openjpa.jdbc.schema.SchemaTool</code></a>. In
+addition to the universal flags of the <a class="link" href="ref_guide_conf.html" title="Chapter 2. Configuration">
+configuration framework</a>, the schema tool accepts the following command
+line arguments:
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+ <p>
+<code class="literal">-ignoreErrors/-i <true/t | false/f></code>: If <code class="literal">false
+</code>, an exception will be thrown if the tool encounters any database
+errors. Defaults to <code class="literal">false</code>.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">-file/-f <stdout | output file></code>: Use this option to
+write a SQL script for the planned schema modifications, rather them committing
+them to the database. When used in conjunction with the <code class="literal">export
+</code> or <code class="literal">reflect</code> actions, the named file will be used to
+write the exported schema XML. If the file names a resource in the <code class="literal">
+CLASSPATH</code>, data will be written to that resource. Use <code class="literal">stdout
+</code> to write to standard output. Defaults to <code class="literal">stdout</code>.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">-openjpaTables/-ot <true/t | false/f></code>: When reflecting
+on the schema, whether to reflect on tables and sequences whose names start with
+<code class="literal">OPENJPA_</code>. Certain OpenJPA components may use such tables -
+for example, the <code class="literal">table</code> schema factory option covered in
+<a class="xref" href="ref_guide_schema_info.html#ref_guide_schema_info_factory" title="12.2. Schema Factory">Section 12.2, “
+ Schema Factory
+ ”</a>. When using other
+actions, <code class="literal">openjpaTables</code> controls whether these tables can be
+dropped. Defaults to <code class="literal">false</code>.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">-dropTables/-dt <true/t | false/f></code>: Set this option to
+<code class="literal">true</code> to drop tables that appear to be unused during <code class="literal">
+retain</code> and <code class="literal">refresh</code> actions. Defaults to <code class="literal">
+true</code>.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">-dropSequences/-dsq <true/t | false/f></code>: Set this
+option to <code class="literal">true</code> to drop sequences that appear to be unused
+during <code class="literal">retain</code> and <code class="literal">refresh</code> actions.
+Defaults to <code class="literal">true</code>.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">-sequences/-sq <true/t | false/f></code>: Whether to
+manipulate sequences. Defaults to <code class="literal">true</code>.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">-indexes/-ix <true/t | false/f></code>: Whether to manipulate
+indexes on existing tables. Defaults to <code class="literal">true</code>.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">-primaryKeys/-pk <true/t | false/f></code>: Whether to
+manipulate primary keys on existing tables. Defaults to <code class="literal">true</code>.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">-foreignKeys/-fk <true/t | false/f></code>: Whether to
+manipulate foreign keys on existing tables. Defaults to <code class="literal">true</code>.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">-record/-r <true/t | false/f></code>: Use <code class="literal">false
+</code> to prevent writing the schema changes made by the tool to the current
+<a class="link" href="ref_guide_schema_info.html#ref_guide_schema_info_factory" title="12.2. Schema Factory"><code class="literal">schema
+factory</code></a>. Defaults to <code class="literal">true</code>.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">-schemas/-s <schema list></code>: A list of schema and table
+names that OpenJPA should access during this run of the schema tool. This is
+equivalent to setting the <a class="link" href="ref_guide_conf_jdbc.html#openjpa.jdbc.Schemas" title="6.14. openjpa.jdbc.Schemas">
+openjpa.jdbc.Schemas</a> property for a single run.
+ </p>
+ </li></ul></div>
+ <p>
+The schema tool also accepts an <code class="literal">-action</code> or <code class="literal">-a
+</code> flag. Multiple actions can be composed in a comma-separated list.
+The available actions are:
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+ <p>
+<code class="literal">add</code>: This is the default action if you do not specify one.
+It brings the schema up-to-date with the given XML document by adding tables,
+columns, indexes, etc. This action never drops any schema components.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">retain</code>: Keep all schema components in the given XML
+definition, but drop the rest from the database. This action never adds any
+schema components.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">drop</code>: Drop all schema components in the schema XML. Tables
+will only be dropped if they would have 0 columns after dropping all columns
+listed in the XML.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">refresh</code>: Equivalent to <code class="literal">retain</code>, then
+<code class="literal">add</code>.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">build</code>: Generate SQL to build a schema matching the one in
+the given XML file. Unlike <code class="literal">add</code>, this option does not take
+into account the fact that part of the schema defined in the XML file might
+already exist in the database. Therefore, this action is typically used in
+conjunction with the <code class="literal">-file</code> flag to write a SQL script. This
+script can later be used to recreate the schema in the XML.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">reflect</code>: Generate an XML representation of the current
+database schema.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">createDB</code>: Generate SQL to re-create the current database.
+This action is typically used in conjunction with the <code class="literal">-file</code>
+flag to write a SQL script that can be used to recreate the current schema on a
+fresh database.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">dropDB</code>: Generate SQL to drop the current database. Like
+<code class="literal">createDB</code>, this action can be used with the <code class="literal">-file
+</code> flag to script a database drop rather than perform it.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">import</code>: Import the given XML schema definition into the
+current schema factory. Does nothing if the factory does not store a record of
+the schema.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">export</code>: Export the current schema factory's stored schema
+definition to XML. May produce an empty file if the factory does not store a
+record of the schema.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">deleteTableContents</code>: Execute SQL to delete all rows from
+all tables that OpenJPA knows about.
+ </p>
+ </li></ul></div>
+ <div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3>
+ <p>
+The schema tool manipulates tables, columns, indexes, constraints, and
+sequences. It cannot create or drop the database schema objects in which the
+tables reside, however. If your XML documents refer to named database schemas,
+those schemas must exist.
+ </p>
+ </div>
+ <p>
+We present some examples of schema tool usage below.
+ </p>
+ <div class="example"><a name="ref_guide_schema_schematool_create"></a><p class="title"><b>Example 4.18.
+ Schema Creation
+ </b></p><div class="example-contents">
+
+ <a class="indexterm" name="d5e11947"></a>
+ <p>
+Add the necessary schema components to the database to match the given XML
+document, but don't drop any data:
+ </p>
+<pre class="programlisting">
+java org.apache.openjpa.jdbc.schema.SchemaTool targetSchema.xml
+</pre>
+ </div></div><br class="example-break">
+ <div class="example"><a name="ref_guide_schema_schematool_script"></a><p class="title"><b>Example 4.19.
+ SQL Scripting
+ </b></p><div class="example-contents">
+
+ <p>
+Repeat the same action as the first example, but this time don't change the
+database. Instead, write any planned changes to a SQL script:
+ </p>
+<pre class="programlisting">
+java org.apache.openjpa.jdbc.schema.SchemaTool -f script.sql targetSchema.xml
+</pre>
+ <p>
+Write a SQL script that will re-create the current database:
+ </p>
+<pre class="programlisting">
+java org.apache.openjpa.jdbc.schema.SchemaTool -a createDB -f script.sql
+</pre>
+ </div></div><br class="example-break">
+ <div class="example"><a name="ref_guide_schema_schematool_table_cleanup"></a><p class="title"><b>Example 4.20.
+ Table Cleanup
+ </b></p><div class="example-contents">
+
+ <a class="indexterm" name="d5e11960"></a>
+ <a class="indexterm" name="d5e11963"></a>
+ <p>
+Refresh the schema and delete all contents of all tables that OpenJPA
+knows about:
+ </p>
+<pre class="programlisting">
+java org.apache.openjpa.jdbc.schema.SchemaTool -a refresh,deleteTableContents
+</pre>
+ </div></div><br class="example-break">
+ <div class="example"><a name="ref_guide_schema_schematool_drop"></a><p class="title"><b>Example 4.21.
+ Schema Drop
+ </b></p><div class="example-contents">
+
+ <p>
+Drop the current database:
+ </p>
+<pre class="programlisting">
+java org.apache.openjpa.jdbc.schema.SchemaTool -a dropDB
+</pre>
+ </div></div><br class="example-break">
+ <div class="example"><a name="ref_guide_schema_schematool_reflect"></a><p class="title"><b>Example 4.22.
+ Schema Reflection
+ </b></p><div class="example-contents">
+
+ <a class="indexterm" name="d5e11974"></a>
+ <p>
+Write an XML representation of the current schema to file <code class="filename">schema.xml
+</code>.
+ </p>
+<pre class="programlisting">
+java org.apache.openjpa.jdbc.schema.SchemaTool -a reflect -f schema.xml
+</pre>
+ </div></div><br class="example-break">
+ </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ref_guide_schema_info.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref_guide_dbsetup.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ref_guide_schema_xml.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">12.
+ Schema Reflection
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 14.
+ XML Schema Format
+ </td></tr></table></div></body></html>
\ No newline at end of file
Propchange: websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_schema_schematool.html
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_schema_xml.html
==============================================================================
--- websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_schema_xml.html (added)
+++ websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_schema_xml.html Wed May 14 22:22:23 2014
@@ -0,0 +1,163 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>14. XML Schema Format</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"><link rel="home" href="manual.html" title="Apache OpenJPA 2.3 User's Guide"><link rel="up" href="ref_guide_dbsetup.html" title="Chapter 4. JDBC"><link rel="prev" href="ref_guide_schema_schematool.html" title="13. Schema Tool"><link rel="next" href="ref_guide_pc.html" title="Chapter 5. Persistent Classes"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">14.
+ XML Schema Format
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ref_guide_schema_schematool.html">Prev</a> </td><th width="60%" align="center">Chapter 4.
+ JDBC
+ </th><td width="20%" align="right"> <a accesskey="n" href="ref_guide_pc.html">Next</a></td></tr></table><hr></div><div class="section" title="14. XML Schema Format"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="ref_guide_schema_xml">14.
+ XML Schema Format
+ </h2></div></div></div>
+
+ <a class="indexterm" name="d5e11983"></a>
+ <p>
+The <a class="link" href="ref_guide_schema_schematool.html" title="13. Schema Tool">schema tool</a> and
+<a class="link" href="ref_guide_schema_info.html#ref_guide_schema_info_factory" title="12.2. Schema Factory"> schema factories</a> all use
+the same XML format to represent database schema. The Document Type Definition
+(DTD) for schema information is presented below, followed by examples of schema
+definitions in XML.
+ </p>
+<pre class="programlisting">
+<!ELEMENT schemas (schema)+>
+<!ELEMENT schema (table|sequence)+>
+<!ATTLIST schema name CDATA #IMPLIED>
+
+<!ELEMENT sequence EMPTY>
+<!ATTLIST sequence name CDATA #REQUIRED>
+<!ATTLIST sequence initial-value CDATA #IMPLIED>
+<!ATTLIST sequence increment CDATA #IMPLIED>
+<!ATTLIST sequence allocate CDATA #IMPLIED>
+
+<!ELEMENT table (column|index|pk|fk|unique)+>
+<!ATTLIST table name CDATA #REQUIRED>
+
+<!ELEMENT column EMPTY>
+<!ATTLIST column name CDATA #REQUIRED>
+<!ATTLIST column type (array | bigint | binary | bit | blob | char | clob
+ | date | decimal | distinct | double | float | integer | java_object
+ | longvarbinary | longvarchar | null | numeric | other | real | ref
+ | smallint | struct | time | timestamp | tinyint | varbinary | varchar)
+ #REQUIRED>
+<!ATTLIST column not-null (true|false) "false">
+<!ATTLIST column auto-assign (true|false) "false">
+<!ATTLIST column default CDATA #IMPLIED>
+<!ATTLIST column size CDATA #IMPLIED>
+<!ATTLIST column decimal-digits CDATA #IMPLIED>
+
+<!-- the type-name attribute can be used when you want OpenJPA to -->
+<!-- use a particular SQL type declaration when creating the -->
+<!-- column. It is up to you to ensure that this type is -->
+<!-- compatible with the JDBC type used in the type attribute. -->
+<!ATTLIST column type-name CDATA #IMPLIED>
+
+<!-- the 'column' attribute of indexes, pks, and fks can be used -->
+<!-- when the element has only one column (or for foreign keys, -->
+<!-- only one local column); in these cases the on/join child -->
+<!-- elements can be omitted -->
+<!ELEMENT index (on)*>
+<!ATTLIST index name CDATA #REQUIRED>
+<!ATTLIST index column CDATA #IMPLIED>
+<!ATTLIST index unique (true|false) "false">
+
+<!-- the 'logical' attribute of pks should be set to 'true' if -->
+<!-- the primary key does not actually exist in the database, -->
+<!-- but the given column should be used as a primary key for -->
+<!-- O-R purposes -->
+<!ELEMENT pk (on)*>
+<!ATTLIST pk name CDATA #IMPLIED>
+<!ATTLIST pk column CDATA #IMPLIED>
+<!ATTLIST pk logical (true|false) "false">
+
+<!ELEMENT on EMPTY>
+<!ATTLIST on column CDATA #REQUIRED>
+
+<!-- fks with a delete-action of 'none' are similar to logical -->
+<!-- pks; they do not actually exist in the database, but -->
+<!-- represent a logical relation between tables (or their -->
+<!-- corresponding Java classes) -->
+<!ELEMENT fk (join)*>
+<!ATTLIST fk name CDATA #IMPLIED>
+<!ATTLIST fk deferred (true|false) "false">
+<!ATTLIST fk to-table CDATA #REQUIRED>
+<!ATTLIST fk column CDATA #IMPLIED>
+<!ATTLIST fk delete-action (cascade|default|exception|none|null) "none">
+
+<!ELEMENT join EMPTY>
+<!ATTLIST join column CDATA #REQUIRED>
+<!ATTLIST join to-column CDATA #REQUIRED>
+<!ATTLIST join value CDATA #IMPLIED>
+
+<!-- unique constraint -->
+<!ELEMENT unique (on)*>
+<!ATTLIST unique name CDATA #IMPLIED>
+<!ATTLIST unique column CDATA #IMPLIED>
+<!ATTLIST unique deferred (true|false) "false">
+</pre>
+ <div class="example"><a name="ref_guide_schema_xml_basic"></a><p class="title"><b>Example 4.23.
+ Basic Schema
+ </b></p><div class="example-contents">
+
+ <p>
+A very basic schema definition.
+ </p>
+<pre class="programlisting">
+<schemas>
+ <schema>
+ <sequence name="S_ARTS"/>
+ <table name="ARTICLE">
+ <column name="TITLE" type="varchar" size="255" not-null="true"/>
+ <column name="AUTHOR_FNAME" type="varchar" size="28">
+ <column name="AUTHOR_LNAME" type="varchar" size="28">
+ <column name="CONTENT" type="clob">
+ </table>
+ <table name="AUTHOR">
+ <column name="FIRST_NAME" type="varchar" size="28" not-null="true">
+ <column name="LAST_NAME" type="varchar" size="28" not-null="true">
+ </table>
+ </schema>
+</schemas>
+</pre>
+ </div></div><br class="example-break">
+ <div class="example"><a name="ref_guide_schema_xml_full"></a><p class="title"><b>Example 4.24.
+ Full Schema
+ </b></p><div class="example-contents">
+
+ <p>
+Expansion of the above schema with primary keys, constraints, and indexes, some
+of which span multiple columns.
+ </p>
+<pre class="programlisting">
+<schemas>
+ <schema>
+ <sequence name="S_ARTS"/>
+ <table name="ARTICLE">
+ <column name="TITLE" type="varchar" size="255" not-null="true"/>
+ <column name="AUTHOR_FNAME" type="varchar" size="28">
+ <column name="AUTHOR_LNAME" type="varchar" size="28">
+ <column name="CONTENT" type="clob">
+ <pk column="TITLE"/>
+ <fk to-table="AUTHOR" delete-action="exception">
+ <join column="AUTHOR_FNAME" to-column="FIRST_NAME"/>
+ <join column="AUTHOR_LNAME" to-column="LAST_NAME"/>
+ </fk>
+ <index name="ARTICLE_AUTHOR">
+ <on column="AUTHOR_FNAME"/>
+ <on column="AUTHOR_LNAME"/>
+ </index>
+ </table>
+ <table name="AUTHOR">
+ <column name="FIRST_NAME" type="varchar" size="28" not-null="true">
+ <column name="LAST_NAME" type="varchar" size="28" not-null="true">
+ <pk>
+ <on column="FIRST_NAME"/>
+ <on column="LAST_NAME"/>
+ </pk>
+ </table>
+ </schema>
+</schemas>
+</pre>
+ </div></div><br class="example-break">
+ </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ref_guide_schema_schematool.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref_guide_dbsetup.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ref_guide_pc.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">13.
+ Schema Tool
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 5.
+ Persistent Classes
+ </td></tr></table></div></body></html>
\ No newline at end of file
Propchange: websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_schema_xml.html
------------------------------------------------------------------------------
svn:mime-type = text/plain