You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-dev@db.apache.org by mb...@apache.org on 2020/05/28 18:30:21 UTC
[db-jdo-site] branch master updated: JDO-779: normalized line
endings
This is an automated email from the ASF dual-hosted git repository.
mbo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/db-jdo-site.git
The following commit(s) were added to refs/heads/master by this push:
new b183a36 JDO-779: normalized line endings
b183a36 is described below
commit b183a367232fb6dab658acddaf60eccba78140f5
Author: Michael Bouschen <Mi...@akquinet.de>
AuthorDate: Thu May 28 20:30:03 2020 +0200
JDO-779: normalized line endings
---
docs/annotations.html | 8018 +++++++++++++++++++++---------------------
docs/attach_detach.html | 1250 +++----
docs/class_types.html | 842 ++---
docs/dependencies.html | 874 ++---
docs/downloads.html | 794 ++---
docs/enhancement.html | 1780 +++++-----
docs/exceptions.html | 934 ++---
docs/extents.html | 712 ++--
docs/faq.html | 752 ++--
docs/fetchgroups.html | 1398 ++++----
docs/field_types.html | 1622 ++++-----
docs/get-involved.html | 816 ++---
docs/getting-started.html | 674 ++--
docs/glossary.html | 1040 +++---
docs/guides-maven-jdo.html | 1274 +++----
docs/guides-replication.html | 980 +++---
docs/impls.html | 982 +++---
docs/issuetracking.html | 790 ++---
docs/javadoc.html | 852 ++---
docs/jdo_3_0_overview.html | 1136 +++---
docs/jdo_dtd.html | 756 ++--
docs/jdo_v_jpa.html | 1114 +++---
docs/jdo_v_jpa_api.html | 826 ++---
docs/jdo_v_jpa_orm.html | 1326 +++----
docs/jdocentral.html | 706 ++--
docs/jdoconfig_dtd.html | 758 ++--
docs/jdohelper.html | 948 ++---
docs/jdoql.html | 1280 +++----
docs/jdoql_methods.html | 1446 ++++----
docs/jdoql_result.html | 986 +++---
docs/jdoquery_dtd.html | 758 ++--
docs/mail-lists.html | 746 ++--
docs/metadata.html | 792 ++---
docs/newshistory.html | 704 ++--
docs/object_retrieval.html | 838 ++---
docs/orm_dtd.html | 758 ++--
docs/pm.html | 1154 +++---
docs/pmf.html | 1120 +++---
docs/references.html | 822 ++---
docs/release-3.0.1.html | 1002 +++---
docs/release-3.1-rc1.html | 954 ++---
docs/release-3.1.html | 918 ++---
docs/roadmap.html | 692 ++--
docs/source-code.html | 768 ++--
docs/specifications.html | 794 ++---
docs/state_transition.html | 1164 +++---
docs/tck.html | 760 ++--
docs/team-list.html | 884 ++---
docs/transactions.html | 784 ++---
docs/why_jdo.html | 1052 +++---
50 files changed, 27565 insertions(+), 27565 deletions(-)
diff --git a/docs/annotations.html b/docs/annotations.html
index 76574d5..c27935d 100644
--- a/docs/annotations.html
+++ b/docs/annotations.html
@@ -1,4010 +1,4010 @@
-<!DOCTYPE html>
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
-
- <!-- No caching headers -->
- <meta http-equiv="cache-control" content="no-cache"/>
- <meta http-equiv="pragma" content="no-cache"/>
- <meta http-equiv="expires" content="-1"/>
- <meta name="keywords" content="JDO, Apache, Java, Data, Objects"/>
- <meta name="description" content="Apache JDO - Java Data Objects"/>
-
- <title>JDO : Annotations</title>
-
- <link rel="icon" type="image/png" href="https://apache.github.io/db-jdo-site/images/JDO_32x32.png"/>
-
- <!--
- Apache JDO Documentation Template
- ==================================
- This template derived various aspects from Apache Deltaspike template, the Apache ISIS template and the Datanucleus template.
- This template uses
- * Bootstrap v3.3.7 (https://getbootstrap.com/) for navbar.
- * Asciidoctor "foundation" CSS
- * Bootswatch "cosmo" theme for Bootstrap (https://bootswatch.com/cosmo).
- * Bootstrap TOC plugin v0.4.1 (https://afeld.github.io/bootstrap-toc/) for the table of contents.
- * jQuery (necessary for Bootstrap's JavaScript plugins)
- * Font-Awesome for some icons used by Asciidoctor
- NOTE: tried using Font-Awesome CSS hosted locally but then fails to work!
- -->
- <link href="css/bootswatch/3.3.7/bootstrap-cosmo.css" rel="stylesheet"/>
- <link href="css/bootstrap-toc/0.4.1/bootstrap-toc.min.css" rel="stylesheet"/>
-
- <link href="css/asciidoctor/foundation.css" rel="stylesheet"/>
- <link href="css/datanucleus_theme.css" rel="stylesheet"/>
- <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
- <script src="js/bootstrap/3.3.7/bootstrap.min.js"></script>
- <script src="js/bootstrap-toc/0.4.1/bootstrap-toc.min.js"></script>
-
- <!-- Coderay syntax formatter -->
- <style type="text/css">
- /* Stylesheet for CodeRay to match GitHub theme | MIT License | http://foundation.zurb.com */
-/*pre.CodeRay {background-color:#f7f7f8;}*/
-.CodeRay .line-numbers{border-right:1px solid #d8d8d8;padding:0 0.5em 0 .25em}
-.CodeRay span.line-numbers{display:inline-block;margin-right:.5em;color:rgba(0,0,0,.3)}
-.CodeRay .line-numbers strong{color:rgba(0,0,0,.4)}
-table.CodeRay{border-collapse:separate;border-spacing:0;margin-bottom:0;border:0;background:none}
-table.CodeRay td{vertical-align: top;line-height:1.45}
-table.CodeRay td.line-numbers{text-align:right}
-table.CodeRay td.line-numbers>pre{padding:0;color:rgba(0,0,0,.3)}
-table.CodeRay td.code{padding:0 0 0 .5em}
-table.CodeRay td.code>pre{padding:0}
-.CodeRay .debug{color:#fff !important;background:#000080 !important}
-.CodeRay .annotation{color:#007}
-.CodeRay .attribute-name{color:#000080}
-.CodeRay .attribute-value{color:#700}
-.CodeRay .binary{color:#509}
-.CodeRay .comment{color:#998;font-style:italic}
-.CodeRay .char{color:#04d}
-.CodeRay .char .content{color:#04d}
-.CodeRay .char .delimiter{color:#039}
-.CodeRay .class{color:#458;font-weight:bold}
-.CodeRay .complex{color:#a08}
-.CodeRay .constant,.CodeRay .predefined-constant{color:#008080}
-.CodeRay .color{color:#099}
-.CodeRay .class-variable{color:#369}
-.CodeRay .decorator{color:#b0b}
-.CodeRay .definition{color:#099}
-.CodeRay .delimiter{color:#000}
-.CodeRay .doc{color:#970}
-.CodeRay .doctype{color:#34b}
-.CodeRay .doc-string{color:#d42}
-.CodeRay .escape{color:#666}
-.CodeRay .entity{color:#800}
-.CodeRay .error{color:#808}
-.CodeRay .exception{color:inherit}
-.CodeRay .filename{color:#099}
-.CodeRay .function{color:#900;font-weight:bold}
-.CodeRay .global-variable{color:#008080}
-.CodeRay .hex{color:#058}
-.CodeRay .integer,.CodeRay .float{color:#099}
-.CodeRay .include{color:#555}
-.CodeRay .inline{color:#000}
-.CodeRay .inline .inline{background:#ccc}
-.CodeRay .inline .inline .inline{background:#bbb}
-.CodeRay .inline .inline-delimiter{color:#d14}
-.CodeRay .inline-delimiter{color:#d14}
-.CodeRay .important{color:#555;font-weight:bold}
-.CodeRay .interpreted{color:#b2b}
-.CodeRay .instance-variable{color:#008080}
-.CodeRay .label{color:#970}
-.CodeRay .local-variable{color:#963}
-.CodeRay .octal{color:#40e}
-.CodeRay .predefined{color:#369}
-.CodeRay .preprocessor{color:#579}
-.CodeRay .pseudo-class{color:#555}
-.CodeRay .directive{font-weight:bold}
-.CodeRay .type{font-weight:bold}
-.CodeRay .predefined-type{color:inherit}
-.CodeRay .reserved,.CodeRay .keyword {color:#000;font-weight:bold}
-.CodeRay .key{color:#808}
-.CodeRay .key .delimiter{color:#606}
-.CodeRay .key .char{color:#80f}
-.CodeRay .value{color:#088}
-.CodeRay .regexp .delimiter{color:#808}
-.CodeRay .regexp .content{color:#808}
-.CodeRay .regexp .modifier{color:#808}
-.CodeRay .regexp .char{color:#d14}
-.CodeRay .regexp .function{color:#404;font-weight:bold}
-.CodeRay .string{color:#d20}
-.CodeRay .string .string .string{background:#ffd0d0}
-.CodeRay .string .content{color:#d14}
-.CodeRay .string .char{color:#d14}
-.CodeRay .string .delimiter{color:#d14}
-.CodeRay .shell{color:#d14}
-.CodeRay .shell .delimiter{color:#d14}
-.CodeRay .symbol{color:#990073}
-.CodeRay .symbol .content{color:#a60}
-.CodeRay .symbol .delimiter{color:#630}
-.CodeRay .tag{color:#008080}
-.CodeRay .tag-special{color:#d70}
-.CodeRay .variable{color:#036}
-.CodeRay .insert{background:#afa}
-.CodeRay .delete{background:#faa}
-.CodeRay .change{color:#aaf;background:#007}
-.CodeRay .head{color:#f8f;background:#505}
-.CodeRay .insert .insert{color:#080}
-.CodeRay .delete .delete{color:#800}
-.CodeRay .change .change{color:#66f}
-.CodeRay .head .head{color:#f4f}
- </style>
-</head>
-<body data-spy="scroll" data-target="#toc">
-<!-- Navbar -->
-<nav class="navbar navbar-default navbar-static-top">
- <div class="container">
- <div class="navbar-header">
- <!-- Three line menu button for use on mobile screens -->
- <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
- <span class="sr-only">Toggle navigation</span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- </button>
- <!-- 'style' added to align image with navbar. FIX THIS -->
- <a class="navbar-brand" href="https://db.apache.org/jdo/">
- <img style="margin-top: -12px;" alt="Brand" src="images/JDO_44x44.png"/>
- </a>
- <!-- TODO Any way to abstract the version from Maven? -->
- <a class="navbar-brand" href="index.html">Apache JDO</a>
- </div>
- <!-- Navbar that will collapse on mobile screens -->
- <div id="navbar" class="navbar-collapse collapse">
- <ul class="nav navbar-nav">
- <li class="dropdown">
-
- <!-- menu item General -->
-
-
- <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">General<span class="caret"></span></a>
-
- <ul class="dropdown-menu">
- <li><a href="why_jdo.html">Why JDO?</a></li>
- <li><a href="getting-started.html">Getting Started</a></li>
- <li><a href="specifications.html">Specifications</a></li>
- <li><a href="tck.html">TCK</a></li>
- <li><a href="javadoc.html">API Javadoc</a></li>
- <li role="separator" class="divider"></li>
- <li><a href="jdo_v_jpa.html">JDO v JPA</a></li>
- <li><a href="jdo_v_jpa_api.html">JDO v JPA : API</a></li>
- <li><a href="jdo_v_jpa_orm.html">JDO v JPA : ORM</a></li>
- <li role="separator" class="divider"></li>
- <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
- <li><a href="impls.html">Implementations</a></li>
- <li><a href="jdo_3_0_overview.html">JDO 3.0 Overview</a></li>
- <li><a href="references.html">References</a></li>
- <li><a href="glossary.html">Glossary</a></li>
- </ul>
- </li>
-
- <!-- menu item API Usage -->
-
- <li class="dropdown">
-
- <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">API Usage<span class="caret"></span></a>
-
- <ul class="dropdown-menu">
- <li><a href="jdohelper.html">JDO Helper</a></li>
- <li><a href="pmf.html">PersistenceManagerFactory</a></li>
- <li><a href="pm.html">PersistenceManager</a></li>
- <li><a href="transactions.html">Transactions</a></li>
- <li><a href="attach_detach.html">Attach-Detach</a></li>
- <li><a href="fetchgroups.html">Fetch Groups</a></li>
- <li><a href="state_transition.html">Object States</a></li>
- <li><a href="object_retrieval.html">Object Retrieval</a></li>
- <li><a href="exceptions.html">Exceptions</a></li>
- <li role="separator" class="divider"></li>
- <li><a href="guides-replication.html">Data Replication</a></li>
- </ul>
- </li>
-
- <!-- menu item Types & Metadata -->
-
- <li class="dropdown">
-
- <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false" style="background-color:#2385c6">Types & Metadata<span class="caret"></span></a>
-
- <ul class="dropdown-menu">
- <li><a href="class_types.html">Types of Classes</a></li>
- <li><a href="field_types.html">Types of Fields</a></li>
- <li role="separator" class="divider"></li>
- <!-- <li class="dropdown-header">Metadata</li> -->
- <li><a href="metadata.html">MetaData</a></li>
- <li><a href="annotations.html">Annotations</a></li>
- <li><a href="jdo_dtd.html">jdo DTD/XSD</a></li>
- <li><a href="orm_dtd.html">orm DTD/XSD</a></li>
- <li><a href="jdoquery_dtd.html">jdoquery DTD/XSD</a></li>
- <li><a href="jdoconfig_dtd.html">jdoconfig DTD/XSD</a></li>
- <li role="separator" class="divider"></li>
- <li><a href="enhancement.html">Bytecode Enhancement</a></li>
- </ul>
- </li>
-
- <!-- menu item Query -->
-
- <li class="dropdown">
-
- <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Query<span class="caret"></span></a>
-
- <ul class="dropdown-menu">
- <li><a href="jdoql.html">JDOQL</a></li>
- <li><a href="jdoql_result.html">Result</a></li>
- <li><a href="jdoql_methods.html">Methods</a></li>
- <li><a href="jdoql_quickref.pdf">Quick Ref PDF</a></li>
- <li role="separator" class="divider"></li>
- <li><a href="extents.html">Extents</a></li>
- </ul>
- </li>
-
- <!-- menu item Community -->
-
- <li class="dropdown">
-
- <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Community<span class="caret"></span></a>
-
- <ul class="dropdown-menu">
- <li><a href="get-involved.html">Get Involved</a></li>
- <li><a href="team-list.html">Project Team</a></li>
- <li><a href="mail-lists.html">Mailing Lists</a></li>
- <li><a href="faq.html">FAQ</a></li>
- </ul>
- </li>
-
- <!-- menu item Development -->
-
- <li class="dropdown">
-
- <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Development<span class="caret"></span></a>
-
- <ul class="dropdown-menu">
- <li><a href="roadmap.html">RoadMap / TODO</a></li>
- <li><a href="downloads.html">Downloads</a></li>
- <li><a href="source-code.html">Source Code</a></li>
- <li><a href="http://cwiki.apache.org/GMOxDEV/Coding+standards">Coding Standards</a></li>
- <li><a href="issuetracking.html">Issue Tracking</a></li>
- </ul>
- </li>
- </ul>
- <!-- 'style' added to fix height of input box. FIX THIS -->
- <form class="navbar-form navbar-left" role="search" id="search-form" action="https://www.google.com/search" method="get" style="padding: 1px 15px;">
- <div class="form-group">
- <input name="sitesearch" value="db.apache.org/jdo" type="hidden">
- <input name="q" type="text" class="form-control" placeholder="Search" style="margin-top: 7px; padding: 1px; border-radius: 5px; height: 30px; vertical-align: middle;">
- </div>
- </form>
- </div>
- </div>
-</nav>
-<div class="container">
-
- <!-- No TOC -->
- <div class="row-fluid">
- <div class="col-sm-12">
-
- <!-- no heading -->
-
- <div id="doc-content">
- <div class="sect1">
-<h2 id="index">JDO : Annotations<a id="JDO_:_Annotations"></a></h2>
-<div class="sectionbody">
-<div class="paragraph">
-<p>One of the things that JDK 1.5 provides that can be of some use is
-annotations, and JDO provides its own set. When selecting to use
-annotations please bear in mind the following :</p>
-</div>
-<div class="ulist">
-<ul>
-<li>
-<p>You must have the <strong>jdo-api</strong> jar in your CLASSPATH since this provides
-the annotations</p>
-</li>
-<li>
-<p>Annotations should really only be used for attributes of persistence
-that you won’t be changing at deployment. Things such as table and
-column names shouldn’t really be specified using annotations although it
-is permitted. Instead it would be better to put such information in an
-ORM MetaData file.</p>
-</li>
-<li>
-<p>Annotations can be added in two places - for the class as a whole, or
-for a field in particular.</p>
-</li>
-<li>
-<p>You can annotate fields or getters with field-level information. If
-you annotate fields then the fields are processed for persistence. If
-you annotate the methods (getters) then the methods (properties) are
-processed for persistence.</p>
-</li>
-<li>
-<p>Annotations are prefixed by the @ symbol and can take properties (in
-brackets after the name, comma-separated)</p>
-</li>
-</ul>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 33.3333%;">
-<col style="width: 33.3333%;">
-<col style="width: 33.3334%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Annotation</th>
-<th class="tableblock halign-left valign-top">Class/Field/Method</th>
-<th class="tableblock halign-left valign-top">Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#PersistenceCapable">@PersistenceCapable</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies that
-the class/interface is persistent. In the case of an interface this
-would utilise JDO2’s "persistent-interface" capabilities</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#PersistenceAware">@PersistenceAware</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies that the
-class is not persistent but needs to be able to access fields of
-persistent classes</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Cacheable_Class">@Cacheable</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies whether this class
-can be cached in a Level 2 cache or not.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#EmbeddedOnly">@EmbeddedOnly</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies that the class is
-persistent and can only be persisted embedded in another persistent
-class</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#DatastoreIdentity">@DatastoreIdentity</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies the
-details for generating datastore-identity for this class</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Version">@Version</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies any versioning process for
-objects of this class</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#FetchPlans">@FetchPlans</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Defines a series of fetch plans</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#FetchPlan">@FetchPlan</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Defines a fetch plan</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#FetchGroups">@FetchGroups</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Defines a series of fetch
-groups for this class</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#FetchGroup">@FetchGroup</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Defines a fetch group for this
-class</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Sequence">@Sequence</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Defines a sequence for use by this
-class</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Queries">@Queries</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Defines a series of named queries for
-this class</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Query">@Query</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Defines a named query for this class</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Inheritance">@Inheritance</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies the inheritance model
-for persisting this class</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Discriminator">@Discriminator</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies any discriminator
-for this class to be used for determining object types</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#PrimaryKey_Class">@PrimaryKey</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines the primary
-key constraint for this class</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Indices">@Indices</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines a series of indices for
-this class</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Index_Class">@Index</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines an index for the class
-as a whole (typically a composite index)</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Uniques">@Uniques</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines a series of unique
-constraints for this class</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Unique_Class">@Unique</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines a unique constraint
-for the class as a whole (typically a composite)</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#ForeignKeys">@ForeignKeys</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines a series of
-foreign-keys (typically for non-mapped columns/tables)</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#ForeignKey_Class">@ForeignKey</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines a foreign-key
-for the class as a whole (typically for non-mapped columns/tables)</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Joins">@Joins</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines a series of joins to
-secondary tables from this table</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Join_Class">@Join</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines a join to a secondary
-table from this table</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Columns">@Columns</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines a series of columns that
-dont have associated fields ("unmapped columns")</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Persistent">@Persistent</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Defines the persistence
-for a field/property of the class</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Serialized">@Serialized</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Defines this field as
-being stored serialised</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#NotPersistent">@NotPersistent</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Defines this field
-as being not persisted</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Transactional">@Transactional</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Defines this field
-as being transactional (not persisted, but managed)</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Cacheable">@Cacheable</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies whether this
-field/property can be cached in a Level 2 cache or not.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#PrimaryKey">@PrimaryKey</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Defines this field as
-being (part of) the primary key</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Element">@Element</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Defines the details of elements
-of an array/collection stored in this field</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Key">@Key</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Defines the details of keys of a map
-stored in this field</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Value">@Value</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Defines the details of values of a
-map stored in this field</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Order">@Order</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines the details of
-ordering of an array/collection stored in this field</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Join">@Join</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines the join to a join table
-for a collection/array/map</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Embedded">@Embedded</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines that this field
-is embedded and how it is embedded</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Columns">@Columns</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines a series of
-columns where a field is persisted</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">@Column</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines a column where a
-field is persisted</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Index">@Index</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines an index for the field</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Unique">@Unique</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines a unique constraint
-for the field</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#ForeignKey">@ForeignKey</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines a foreign
-key for the field</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extensions">@Extensions</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class/Field/Method</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Defines a series of
-JDO extensions</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">@Extension</a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class/Field/Method</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Defines a JDO
-extension</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="PersistenceCapable"></a></p>
-</div>
-<div class="sect2">
-<h3 id="__persistencecapable_a_id_apersistencecapable_a">@PersistenceCapable<a id="aPersistenceCapable"></a></h3>
-<div class="paragraph">
-<p>This annotation is used when you want to mark a class as persistent. It
-equates to the <class> MetaData element (though with only some of its
-attributes). Specified on the <strong>class</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">requiresExtent</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether an extent is required for this class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">embeddedOnly</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether objects of this class can only be stored
-embedded in other objects</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">detachable</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether objects of this class can be detached</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">identityType</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">IdentityType</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Type of identity (APPLICATION, DATASTORE,
-NONDURABLE)</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">DATASTORE</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">objectIdClass</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Object-id class</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">table</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the table where this class is persisted</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">catalog</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the catalog where this table is
-persisted</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">schema</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the schema where this table is persisted</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">cacheable</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the class can be L2 cached. <strong>From JDO2.2</strong></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>true</strong></p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">serializeRead</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether to default reads of this object type to
-lock the object</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">extensions</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor extensions</p></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable(identityType=IdentityType.APPLICATION)
-public class MyClass
-{
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="PersistenceAware"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__persistenceaware_a_id_apersistenceaware_a">@PersistenceAware<a id="aPersistenceAware"></a></h3>
-<div class="paragraph">
-<p>This annotation is used when you want to mark a class as being used in
-persistence but not being persistable. That is "persistence-aware" in
-JDO terminology. It has no attributes. Specified on the <strong>class</strong>.</p>
-</div>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceAware
-public class MyClass
-{
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p>See the documentation for <a href="class_types.html">Class Types</a></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Cacheable_Class"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__cacheable_a_id_acacheable_a">@Cacheable<a id="aCacheable"></a></h3>
-<div class="paragraph">
-<p>This annotation is a shortcut for
-@PersistenceCapable(cacheable={value}) specifying whether the class can
-be cached in a Level 2 cache. Specified on the <strong>class</strong>. The default</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the class is cacheable</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>true</strong></p></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@Cacheable("false")
-public class MyClass
-{
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="EmbeddedOnly"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__embeddedonly_a_id_aembeddedonly_a">@EmbeddedOnly<a id="aEmbeddedOnly"></a></h3>
-<div class="paragraph">
-<p>This annotation is a shortcut for
-@PersistenceCapable(embeddedOnly="true") meaning that the class can only
-be persisted embedded into another class. It has no attributes.
-Specified on the <strong>class</strong>.</p>
-</div>
-<div class="literalblock">
-<div class="content">
-<pre>@EmbeddedOnly
-public class MyClass
-{
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Inheritance"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__inheritance_a_id_ainheritance_a">@Inheritance<a id="aInheritance"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define the inheritance for a class. Specified on the
-<strong>class</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">strategy</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">InheritanceStrategy</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">The inheritance strategy (NEW_TABLE,
-SUBCLASS_TABLE, SUPERCLASS_TABLE)</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">customStrategy</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Name of a custom inheritance strategy
-(depending on what your JDO implementation supports</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-@Inheritance(strategy=InheritanceStrategy.NEW_TABLE)
-public class MyClass
-{
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Discriminator"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__discriminator_a_id_adiscriminator_a">@Discriminator<a id="aDiscriminator"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define a discriminator to be stored with instances of
-this class and is used to determine the types of the objects being
-stored. Specified on the <strong>class</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">strategy</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">DiscriminatorStrategy</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">The discriminator strategy (VALUE_MAP,
-CLASS_NAME, NONE)</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Value to use for instances of this type when using
-strategy of VALUE_MAP</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">column</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the column to use to store the
-discriminator</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">indexed</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether the discriminator column is to be
-indexed</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Column definitions used for
-storing the discriminator</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-@Inheritance(strategy=InheritanceStrategy.NEW_TABLE)
-@Discriminator(strategy=DiscriminatorStrategy.CLASS_NAME)
-public class MyClass
-{
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="DatastoreIdentity"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__datastoreidentity_a_id_adatastoreidentity_a">@DatastoreIdentity<a id="aDatastoreIdentity"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define the identity when using datastore-identity for
-the class. Specified on the <strong>class</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">strategy</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">IdGeneratorStrategy</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">The inheritance strategy (NATIVE,
-SEQUENCE, IDENTITY, INCREMENT, UUIDSTRING, UUIDHEX)</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">customStrategy</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Name of a custom id generation strategy (e.g
-"max", "auid"). This overrides the value of "strategy"</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">sequence</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the sequence to use (when using SEQUENCE
-strategy) - refer to @Sequence</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">column</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the column for the datastore identity</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Column definition for the
-column(s) for the datastore identity</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">extensions</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor extensions</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-@DatastoreIdentity(strategy=IdGeneratorStrategy.INCREMENT)
-public class MyClass
-{
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Version"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__version_a_id_aversion_a">@Version<a id="aVersion"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define the versioning details for use with optimistic
-transactions. Specified on the <strong>class</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">strategy</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">VersionStrategy</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">The version strategy (NONE, STATE_IMAGE,
-DATE_TIME, VERSION_NUMBER)</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">indexed</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the version column(s) is indexed</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">column</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the column for the version</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Column definition for the
-column(s) for the version</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">extensions</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor extensions</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-@Version(strategy=VersionStrategy.VERSION_NUMBER)
-public class MyClass
-{
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p>See the documentation for <a href="transactions.html">transactions</a></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="PrimaryKey_Class"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__primarykey_a_id_aprimarykey_a">@PrimaryKey<a id="aPrimaryKey"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define the primary key constraint for a class. Maps
-across to the <primary-key> MetaData element. Specified on the <strong>class</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the primary key constraint</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">column</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the column for this key</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Column definition for the
-column(s) of this key</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-@PrimaryKey(name="MYCLASS_PK")
-public class MyClass
-{
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="FetchPlans"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__fetchplans_a_id_afetchplans_a">@FetchPlans<a id="aFetchPlans"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define a set of fetch plans. Specified on the
-<strong>class</strong>. Used by named queries</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#FetchPlan">FetchPlan</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Array of fetch plans - see
-@FetchPlan annotation</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-@FetchPlans({@FetchPlan(name="plan_3", maxFetchDepth=3, fetchGroups={"group1", "group4"}),
- @FetchPlan(name="plan_4", maxFetchDepth=2, fetchGroups={"group1", "group2"})})
-public class MyClass
-{
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p>See the documentation for <a href="fetchgroups.html">FetchGroups</a></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="FetchPlan"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__fetchplan_a_id_afetchplan_a">@FetchPlan<a id="aFetchPlan"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define a fetch plan Is equivalent to the <fetch-plan>
-metadata element. Specified on the <strong>class</strong>. Used by named queries</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the FetchPlan</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">maxFetchDepth</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Maximum fetch depth</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">fetchSize</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Size hint for fetching query result sets</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">0</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">fetchGroups</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Names of the fetch groups included in this
-FetchPlan.</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-@FetchPlan(name="plan_3", maxFetchDepth=3, fetchGroups={"group1", "group4"})
-public class MyClass
-{
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p>See the documentation for <a href="fetchgroups.html">FetchGroups</a></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="FetchGroups"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__fetchgroups_a_id_afetchgroups_a">@FetchGroups<a id="aFetchGroups"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define a set of fetch groups for a class. Specified
-on the <strong>class</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#FetchGroup">FetchGroup</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Array of fetch groups - see
-@FetchGroup annotation</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-@FetchGroups({@FetchGroup(name="one_two", members={@Persistent(name="field1"), @Persistent(name="field2")}),
- @FetchGroup(name="three", members={@Persistent(name="field3")})})
-public class MyClass
-{
- @Persistent
- String field1;
-
- @Persistent
- String field2;
-
- @Persistent
- String field3;
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p>See the documentation for <a href="fetchgroups.html">FetchGroups</a></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="FetchGroup"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__fetchgroup_a_id_afetchgroup_a">@FetchGroup<a id="aFetchGroup"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define a fetch group. Is equivalent to the
-<fetch-group> metadata element. Specified on the <strong>class</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the fetch group</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">postLoad</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether to call jdoPostLoad after loading this fetch
-group</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">members</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Persistent">Persistent</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Definitions of the
-fields/properties to include in this fetch group</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-@FetchGroup(name="one_two", members={@Persistent(name="field1"), @Persistent(name="field2")})
-public class MyClass
-{
- @Persistent
- String field1;
-
- @Persistent
- String field2;
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p>See the documentation for <a href="fetchgroups.html">FetchGroups</a></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Sequence"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__sequence_a_id_asequence_a">@Sequence<a id="aSequence"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define a sequence generator. Is equivalent to the
-<sequence> metadata element. Specified on the <strong>class</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the sequence</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">strategy</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">SequenceStrategy</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Strategy for the sequence
-(NONTRANSACTIONAL, CONTIGUOUS, NONCONTIGUOUS)</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">datastoreSequence</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Name of a datastore sequence that this maps
-to</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">factoryClass</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Factory class to use to generate the sequence</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">initialValue</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Initial value of the sequence</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">allocationSize</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Allocation size of the sequence</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">50</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">extensions</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor extensions</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Queries"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__queries_a_id_aqueries_a">@Queries<a id="aQueries"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define a set of named queries for a class. Specified
-on the <strong>class</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Query">Query</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Array of queries - see @Query annotation</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-@Queries({@Query(name="PeopleCalledSmith", language="JDOQL",
- value="SELECT FROM mydomain.Person WHERE surname == \"Smith\""),
- @Query(name="PeopleCalledJones", language="JDOQL",
- value="SELECT FROM mydomain.Person WHERE surname == \"Jones\"")})
-public class Person
-{
- @Persistent
- String surname;
-
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Query"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__query_a_id_aquery_a">@Query<a id="aQuery"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define a named query. Is equivalent to the <query>
-metadata element. Specified on the <strong>class</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the query</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">The query string itself</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">language</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Language of the query (JDOQL, SQL, …​)</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">JDOQL</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">unmodifiable</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the query is not modifiable at runtime</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">unique</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the query returns unique results (for SQL
-queries only)</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">resultClass</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Result class to use (for SQL queries only)</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">fetchPlan</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Name of a named FetchPlan to use with this query</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">extensions</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor extensions</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-@Query(name="PeopleCalledSmith", language="JDOQL",
- value="SELECT FROM mydomain.Person WHERE surname == \"Smith\"")
-public class Person
-{
- @Persistent
- String surname;
-
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Indices"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__indices_a_id_aindices_a">@Indices<a id="aIndices"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define a set of indices for a class. Specified on the
-<strong>class</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Index_Class">Index</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Array of indices - see @Index
-annotation</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-@Indices({@Index(name="MYINDEX_1", members={"field1","field2"}), @Index(name="MYINDEX_2", members={"field3"})})
-public class Person
-{
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Index_Class"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__index_a_id_aindex_a">@Index<a id="aIndex"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define an index for the class as a whole typically
-being a composite index across multiple columns or fields/properties. Is
-equivalent to the <index> metadata element when specified under class.
-Specified on the <strong>class</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the index</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">table</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the table for the index</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">unique</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether the index is unique</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">members</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Names of the fields/properties that make up
-this index</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Columns that make up this index</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-@Index(name="MY_COMPOSITE_IDX", members={"field1", "field2"})
-public class MyClass
-{
- @Persistent
- String field1;
-
- @Persistent
- String field2;
-
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Uniques"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__uniques_a_id_auniques_a">@Uniques<a id="aUniques"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define a set of unique constraints for a class.
-Specified on the <strong>class</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Unique_Class">Unique</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Array of constraints - see @Unique
-annotation</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-@Uniques({@Unique(name="MYCONST_1", members={"field1","field2"}), @Unique(name="MYCONST_2", members={"field3"})})
-public class Person
-{
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Unique_Class"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__unique_a_id_aunique_a">@Unique<a id="aUnique"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define a unique constraints for the class as a whole
-typically being a composite constraint across multiple columns or
-fields/properties. Is equivalent to the <unique> metadata element when
-specified under class. Specified on the <strong>class</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the constraint</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">table</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the table for the constraint</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">deferred</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether the constraint is deferred</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">members</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Names of the fields/properties that make up
-this constraint</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Columns that make up this
-constraint</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-@Unique(name="MY_COMPOSITE_IDX", members={"field1", "field2"})
-public class MyClass
-{
- @Persistent
- String field1;
-
- @Persistent
- String field2;
-
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="ForeignKeys"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__foreignkeys_a_id_aforeignkeys_a">@ForeignKeys<a id="aForeignKeys"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define a set of foreign-key constraints for a class.
-Specified on the <strong>class</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#ForeignKey_Class">ForeignKey</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Array of FK constraints -
-see @ForeignKey annotation</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="ForeignKey_Class"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__foreignkey_a_id_aforeignkey_a">@ForeignKey<a id="aForeignKey"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define a foreign-key constraint for the class.
-Specified on the <strong>class</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the constraint</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">table</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the table that the FK is to</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">deferred</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether the constraint is deferred</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">unique</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether the constraint is unique</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">deleteAction</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Action to apply to the FK to be
-used on deleting</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction.RESTRICT</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">updateAction</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Action to apply to the FK to be
-used on updating</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction.RESTRICT</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">members</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Names of the fields/properties that compose
-this FK.</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Columns that compose this FK.</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Joins"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__joins_a_id_ajoins_a">@Joins<a id="aJoins"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define a set of joins (to secondary tables) for a
-class. Specified on the <strong>class</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Join_Class">Join</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Array of joins - see @Join annotation</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-@Joins({@Join(table="MY_OTHER_TABLE", column="MY_PK_COL"),
- @Join(table="MY_SECOND_TABLE", column="MY_PK_COL")})
-public class MyClass
-{
- @Persistent(table="MY_OTHER_TABLE")
- String myField;
-
- @Persistent(table="MY_SECOND_TABLE")
- String myField2;
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Join_Class"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__join_a_id_ajoin_a">@Join<a id="aJoin"></a></h3>
-<div class="paragraph">
-<p>Annotation used to specify a join for a secondary table. Specified on
-the <strong>class</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">table</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Table name used when joining the PK of a FCO class
-table to a secondary table.</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">column</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the column used to join to the PK of the
-primary table (when only one column used)</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">outer</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether to use an outer join when retrieving
-fields/properties stored in the secondary table</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the colums used to join
-to the PK of the primary table (when multiple columns used)</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">extensions</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor extensions</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable(name="MYTABLE")
-@Join(table="MY_OTHER_TABLE", column="MY_PK_COL")
-public class MyClass
-{
- @Persistent(name="MY_OTHER_TABLE")
- String myField;
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Columns_Class"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__columns_a_id_acolumns_a">@Columns<a id="aColumns"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define the columns which have no associated field in
-the class. User should specify a minimum of @Column "name", "jdbcType",
-and "insertValue". Specified on the <strong>class</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Array of columns - see @Column
-annotation</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-@Columns(@Column(name="MY_OTHER_COL", jdbcType="VARCHAR", insertValue="N/A")
-public class MyClass
-{
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Persistent"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__persistent_a_id_apersistent_a">@Persistent<a id="aPersistent"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define the fields/properties to be persisted. Is
-equivalent to the <field> and <property> metadata elements. Specified on
-the <strong>field/method</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">persistenceModifier</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">PersistenceModifier</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the field is
-persistent (PERSISTENT, TRANSACTIONAL, NONE)</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">[depends on field type]</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">defaultFetchGroup</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the field is part of the DFG</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">nullValue</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">NullValue</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Required behaviour when inserting a null value
-for this field (NONE, EXCEPTION, DEFAULT).</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">NONE</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">embedded</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether this field as a whole is embedded. Use
-@Embedded to specify details.</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">embeddedElement</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the element stored in this
-collection/array field/property is embedded</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">embeddedKey</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the key stored in this map field/property
-is embedded</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">embeddedValue</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the value stored in this map
-field/property is embedded</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">serialized</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether this field/property as a whole is
-serialised</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">serializedElement</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the element stored in this
-collection/array field/property is serialised</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">serializedKey</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the key stored in this map
-field/property is serialised</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">serializedValue</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the value stored in this map
-field/property is serialised</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">dependent</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether this field is dependent, deleting the
-related object when deleting this object</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">dependentElement</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the element stored in this
-field/property is dependent</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">dependentKey</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the key stored in this field/property is
-dependent</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">dependentValue</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the value stored in this field/property
-is dependent</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">primaryKey</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether this field is (part of) the primary key</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">valueStrategy</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">IdGeneratorStrategy</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Strategy to use when generating
-values for the field (NATIVE, SEQUENCE, IDENTITY, INCREMENT, UUIDSTRING,
-UUIDHEX)</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">customValueStrategy</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Name of a custom id generation strategy
-(e.g "max", "auid"). This overrides the value of "valueStrategy"</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">sequence</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the sequence when using valueStrategy of
-SEQUENCE - refer to @Sequence</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">types</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Type(s) of field (when using interfaces/reference
-types).</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">mappedBy</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Field in other class when the relation is
-bidirectional to signify the owner of the relation</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">table</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the table where this field is persisted.
-If this field is a collection/map/array then the table refers to a join
-table, otherwise this refers to a secondary table.</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the field when defining an embedded field.</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Column definition(s) for the
-columns into which this field is persisted. This is only typically used
-when specifying columns of a field of an embedded class.</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">cacheable</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the field/property can be L2 cached. <strong>From
-JDO2.2</strong></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>true</strong></p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">extensions</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor extensions</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">recursionDepth</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Recursion depth for this field when fetching.
-<strong>Only applicable when specified within @FetchGroup</strong></p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">loadFetchGroup</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Name of a fetch group to activate when a load
-of this field is initiated (due to it being currently unloaded). Not
-used for getObjectById, queries, extents etc. Better to use @FetchGroup
-and define your groups</p></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-public class MyClass
-{
- @Persistent(primaryKey="true")
- String myField;
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p>See the documentation for <a href="field_types.html">Field Types</a></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Serialized"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__serialized_a_id_aserialized_a">@Serialized<a id="aSerialized"></a></h3>
-<div class="paragraph">
-<p>This annotation is a shortcut for @Persistent(serialized="true") meaning
-that the field is stored serialized. It has no attributes. Specified on
-the <strong>field/method</strong>.</p>
-</div>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-public class MyClass
-{
- @Serialized
- Object myField;
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="NotPersistent"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__notpersistent_a_id_anotpersistent_a">@NotPersistent<a id="aNotPersistent"></a></h3>
-<div class="paragraph">
-<p>This annotation is a shortcut for
-@Persistent(persistenceModifier=PersistenceModifier.NONE) meaning that
-the field/property is not persisted. It has no attributes. Specified on
-the <strong>field/method</strong>.</p>
-</div>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-public class MyClass
-{
- @NotPersistent
- String myOtherField;
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p>See the documentation for <a href="field_types.html">Field Types</a></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Transactional"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__transactional_a_id_atransactional_a">@Transactional<a id="aTransactional"></a></h3>
-<div class="paragraph">
-<p>This annotation is a shortcut for
-@Persistent(persistenceModifier=PersistenceModifier.TRANSACTIONAL)
-meaning that the field/property is not persisted yet managed. It has no
-attributes. Specified on the <strong>field/method</strong>.</p>
-</div>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-public class MyClass
-{
- @Transactional
- String myOtherField;
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p>See the documentation for <a href="field_types.html">Field Types</a></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Cacheable"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__cacheable_a_id_acacheable_a_2">@Cacheable<a id="aCacheable"></a></h3>
-<div class="paragraph">
-<p>This annotation is a shortcut for @Persistent(cacheable={value})
-specifying whether the field/property can be cached in a Level 2 cache.
-Specified on the <strong>field/property</strong>. The default</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the field/property is cacheable</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>true</strong></p></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>public class MyClass
-{
- @Cacheable("false")
- Collection elements;
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="PrimaryKey"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__primarykey_a_id_aprimarykey_a_2">@PrimaryKey<a id="aPrimaryKey"></a></h3>
-<div class="paragraph">
-<p>This annotation is a shortcut for @Persistent(primaryKey="true") meaning
-that the field/property is part of the primary key for the class. No
-attributes are needed when specified like this. Specified on the
-<strong>field/method</strong>.</p>
-</div>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-public class MyClass
-{
- @PrimaryKey
- String myOtherField;
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Element"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__element_a_id_aelement_a">@Element<a id="aElement"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define the element for any collection/array to be
-persisted. Maps across to the <collection>, <array> and <element>
-MetaData elements. Specified on the <strong>field/method</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">types</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Type(s) of element</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">When using an array is not needed.
-When using a collection will be taken from the collection definition if
-using generics, otherwise must be specified.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">embedded</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the element is embedded into a join table</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">serialized</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the element is serialised into the join
-table</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">dependent</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the element objects are dependent when
-deleting the owner collection/array</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">mappedBy</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Field in the element class that represents this
-object (when the relation is bidirectional)</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">embeddedMapping</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Embedded">Embedded</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Definition of any
-embedding of the (persistable) element. Only 1 "Embedded" should be
-provided</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">table</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the table for this element</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">column</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the column for this element</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">foreignKey</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of any foreign-key constraint to add</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">generateForeignKey</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether to generate a FK constraint
-for the element (when not specifying the name)</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">deleteAction</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Action to be applied to the
-foreign key for this element for action upon deletion</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">updateAction</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Action to be applied to the
-foreign key for this element for action upon update</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">index</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of any index constraint to add</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">indexed</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether this element column is indexed</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">unique</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether this element column is unique</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">uniqueKey</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of any unique key constraint to add</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Column definition for the
-column(s) of this element</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">extensions</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor extensions</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-public class MyClass
-{
- @Element(types=mydomain.MyElementClass.class, dependent="true")
- Collection myField;
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Order"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__order_a_id_aorder_a">@Order<a id="aOrder"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define the ordering of an order-based
-Collection/array to be persisted. Maps across to the <order> MetaData
-element. Specified on the <strong>field/method</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">mappedBy</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Field in the element class that represents the
-ordering of the collection/array</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">column</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the column for this order</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Column definition for the
-column(s) of this order</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">extensions</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor extensions</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-public class MyClass
-{
- @Element(types=mydomain.MyElementClass.class, dependent="true")
- @Order(column="ORDER_IDX")
- Collection myField;
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Key"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__key_a_id_akey_a">@Key<a id="aKey"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define the key for any map to be persisted. Maps
-across to the <map> and <key> MetaData elements. Specified on the
-<strong>field/method</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">types</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Type(s) of key.</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">When using generics will be taken from
-the Map definition, otherwise must be specified</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">embedded</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the key is embedded into a join table</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">serialized</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the key is serialised into the join table</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">dependent</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the key objects are dependent when deleting
-the owner map</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">mappedBy</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Used to specify the field in the value class where
-the key is stored (optional).</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">embeddedMapping</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Embedded">Embedded</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Definition of any
-embedding of the (persistable) key. Only 1 "Embedded" should be provided</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">table</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the table for this key</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">column</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the column for this key</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">foreignKey</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of any foreign-key constraint to add</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">generateForeignKey</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether to generate a FK constraint
-for the key (when not specifying the name)</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">deleteAction</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Action to be applied to the
-foreign key for this key for action upon deletion</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">updateAction</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Action to be applied to the
-foreign key for this key for action upon update</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">index</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of any index constraint to add</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">indexed</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether this key column is indexed</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">uniqueKey</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of any unique key constraint to add</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">unique</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether this key column is unique</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Column definition for the
-column(s) of this key</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">extensions</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor extensions</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-public class MyClass
-{
- @Key(types=java.lang.String.class)
- Map myField;
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Value"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__value_a_id_avalue_a">@Value<a id="aValue"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define the value for any map to be persisted. Maps
-across to the <map> and <value> MetaData elements. Specified on the
-<strong>field/method</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">types</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Class[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Type(s) of value.</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">When using generics will be taken
-from the Map definition, otherwise must be specified</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">embedded</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the value is embedded into a join table</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">serialized</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the value is serialised into the join table</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">dependent</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the value objects are dependent when
-deleting the owner map</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">mappedBy</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Used to specify the field in the key class where the
-value is stored (optional).</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">embeddedMapping</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Embedded">Embedded</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Definition of any
-embedding of the (persistable) value. Only 1 "Embedded" should be
-provided</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">table</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the table for this value</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">column</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the column for this value</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">foreignKey</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of any foreign-key constraint to add</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">deleteAction</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Action to be applied to the
-foreign key for this value for action upon deletion</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">generateForeignKey</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether to generate a FK constraint
-for the value (when not specifying the name)</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">updateAction</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Action to be applied to the
-foreign key for this value for action upon update</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">index</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of any index constraint to add</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">indexed</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether this value column is indexed</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">uniqueKey</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of any unique key constraint to add</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">unique</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether this value column is unique</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Column definition for the
-column(s) of this value</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">extensions</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor extensions</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-public class MyClass
-{
- @Key(types=java.lang.String.class)
- @Value(types=mydomain.MyValueClass.class, dependent="true")
- Map myField;
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Join"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__join_a_id_ajoin_a_2">@Join<a id="aJoin"></a></h3>
-<div class="paragraph">
-<p>Annotation used to specify a join to a join table for a
-collection/array/map. Specified on the <strong>field/method</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">table</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the table</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">column</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the column to join our PK to in the join
-table (when only one column used)</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">primaryKey</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of any primary key constraint to add for
-the join table</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">generatePrimaryKey</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether to generate a PK constraint
-on the join table (when not specifying the name)</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">foreignKey</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of any foreign-key constraint to add</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">generateForeignKey</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether to generate a FK constraint
-on the join table (when not specifying the name)</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">index</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of any index constraint to add</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">indexed</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether the join column(s) is indexed</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">uniqueKey</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of any unique constraint to add</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">unique</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether the join column(s) has a unique
-constraint</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the columns to join our
-PK to in the join table (when multiple columns used)</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">extensions</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor extensions</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-public class MyClass
-{
- @Persistent
- @Element(types=mydomain.MyElement.class)
- @Join(table="MYCLASS_ELEMENTS", column="MYCLASS_ELEMENTS_PK")
- Collection myField;
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Embedded"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__embedded_a_id_aembedded_a">@Embedded<a id="aEmbedded"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define that the field contents is embedded into the
-same table as this field Maps across to the <embedded> MetaData element.
-Specified on the <strong>field/method</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ownerMember</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : The field/property in the embedded object
-that links back to the owning object (where it has a bidirectional
-relation)</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">nullIndicatorColumn</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : The column in the embedded object
-used to judge if the embedded object is null.</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">nullIndicatorValue</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : The value in the null column to
-interpret the object as being null.</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">members</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Persistent">Persistent</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Field/property
-definitions for this embedding.</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-public class MyClass
-{
- @Embedded(members={
- @Persistent(name="field1", columns=@Column(name="OTHER_FLD_1")),
- @Persistent(name="field2", columns=@Column(name="OTHER_FLD_2"))
- }
- MyOtherClass myField;
- ...
-}
-
-@PersistenceCapable
-@EmbeddedOnly
-public class MyOtherClass
-{
- @Persistent
- String field1;
-
- @Persistent
- String field2;
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Columns"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__columns_a_id_acolumns_a_2">@Columns<a id="aColumns"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define the columns into which a field is persisted.
-If the field is persisted into a single column then @Column should be
-used. Specified on the <strong>field/method</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Array of columns - see @Columns
-annotation</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-public class MyClass
-{
- @Persistent
- @Columns({@Column(name="RED"), @Column(name="GREEN"), @Column(name="BLUE"), @Column(name="ALPHA")})
- Color myField;
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Column"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__column_a_id_acolumn_a">@Column<a id="aColumn"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define that the colum where a field is persisted. Is
-equivalent to the <column> metadata element when specified under field.
-Specified on the <strong>field/method</strong> (and within other annotations).</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the column</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">target</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Column in the other class that this maps to</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">targetMember</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Field/Property in the other class that this
-maps to</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">jdbcType</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : JDBC Type to use for persisting into this
-column</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">sqlType</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : SQL Type to use for persisting into this column</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">length</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Max length of data to store in this column</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">scale</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Max number of floating points of data to store in
-this column</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">allowsNull</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether null is allowed to be persisted into
-this column</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">defaultValue</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Default value to persist into this column.
-If you want the default to be NULL, then put this as "#NULL"</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">insertValue</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Value to insert into this column when it is
-an "unmapped" column. If you want the inserted value to be NULL, then
-put this as "#NULL"</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">position</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Position of this column in the owning table (0 = first)</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">extensions</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor extensions</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-public class MyClass
-{
- @Persistent
- @Column(name="MYCOL", jdbcType="VARCHAR", length=40)
- String field1;
-
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Index"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__index_a_id_aindex_a_2">@Index<a id="aIndex"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define that this field is indexed. Is equivalent to
-the <index> metadata element when specified under field. Specified on
-the <strong>field/method</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the index</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">unique</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether the index is unique</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-public class MyClass
-{
- @Persistent
- @Index(name="MYFIELD1_IDX")
- String field1;
-
- @Persistent
- @Index(name="MYFIELD2_IDX", unique="true")
- String field2;
-
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Unique"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__unique_a_id_aunique_a_2">@Unique<a id="aUnique"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define that this field has a unique constraint. Is
-equivalent to the <unique> metadata element when specified under field.
-Specified on the <strong>field/method</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the constraint</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">deferred</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether the constraint is deferred</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-public class MyClass
-{
- @Persistent
- @Unique(name="MYFIELD1_IDX")
- String field1;
-
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="ForeignKey"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__foreignkey_a_id_aforeignkey_a_2">@ForeignKey<a id="aForeignKey"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define the foreign key for a relationship field. Is
-equivalent to the <foreign-key> metadata element when specified under
-field. Specified on the <strong>field/method</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the constraint</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">deferred</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether the constraint is deferred</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">unique</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether the constraint is unique</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">deleteAction</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Action to apply to the FK to be
-used on deleting</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction.RESTRICT</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">updateAction</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Action to apply to the FK to be
-used on updating</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction.RESTRICT</p></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-public class MyClass
-{
- @Persistent
- @ForeignKey(name="MYFIELD1_FK", deleteAction=ForeignKeyAction.RESTRICT)
- String field1;
-
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Extensions"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__extensions_a_id_aextensions_a">@Extensions<a id="aExtensions"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define a set of extensions specific to the JDO2
-implementation being used. Specified on the <strong>class</strong> or <strong>field</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Array of extensions - see
-@Extension annotation</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-@Extensions({@Extension(vendorName="MyJDOImpl", key="firstExtension", value="myValue"),
- @Extension(vendorName="MyJDOImpl", key="secondExtension", value="myValue")})
-public class Person
-{
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="Extension"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="__extension_a_id_aextension_a">@Extension<a id="aExtension"></a></h3>
-<div class="paragraph">
-<p>Annotation used to define an extension specific to a particular JDO
-implementation. Is equivalent to the <extension> metadata element.
-Specified on the <strong>class</strong> or <strong>field</strong>.</p>
-</div>
-<table class="tableblock frame-all grid-cols spread">
-<colgroup>
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-<col style="width: 25%;">
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Attribute</th>
-<th class="tableblock halign-left valign-top">Type</th>
-<th class="tableblock halign-left valign-top">Description</th>
-<th class="tableblock halign-left valign-top">Default</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">vendorName</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the JDO vendor</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">key</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Key for the extension</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Value of the extension</p></td>
-<td class="tableblock halign-left valign-top"></td>
-</tr>
-</tbody>
-</table>
-<div class="literalblock">
-<div class="content">
-<pre>@PersistenceCapable
-@Extension(vendorName="MyJDOImpl", key="RunFast", value="true")
-public class Person
-{
- ...
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-</div>
-</div>
-</div>
- </div>
- </div>
- </div>
-
-</div>
-
- <footer style="color:#fff; background-color:#222222; padding: 5px;">
- <div class="container">
- <div class="row" style="margin-top:25px">
- <div class="col-sm" align="center">
- <a href="https://www.facebook.com/JavaDataObjects" class="externalLink" title="Facebook">Facebook</a>
- |
- <a href="https://twitter.com/JavaDataObjects" class="externalLink" title="Twitter">Twitter</a>
- |
- <a href="http://wiki.apache.org/jdo" class="externalLink" title="Wiki">Wiki</a>
- |
- <a href="http://issues.apache.org/jira/secure/BrowseProject.jspa?id=10630" class="externalLink" title="Issue Tracker">Issue Tracker</a>
- |
- <a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
- |
- <a href="api31/apidocs/index.html" title="Latest Javadocs">Latest Javadocs</a>
- </div>
- </div>
- <p class="text-center" style="margin-top:16px">© 2005-2020 Apache Software Foundation. All Rights Reserved.</p>
- </div>
- </footer>
-
-</body>
+<!DOCTYPE html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <!-- No caching headers -->
+ <meta http-equiv="cache-control" content="no-cache"/>
+ <meta http-equiv="pragma" content="no-cache"/>
+ <meta http-equiv="expires" content="-1"/>
+ <meta name="keywords" content="JDO, Apache, Java, Data, Objects"/>
+ <meta name="description" content="Apache JDO - Java Data Objects"/>
+
+ <title>JDO : Annotations</title>
+
+ <link rel="icon" type="image/png" href="https://apache.github.io/db-jdo-site/images/JDO_32x32.png"/>
+
+ <!--
+ Apache JDO Documentation Template
+ ==================================
+ This template derived various aspects from Apache Deltaspike template, the Apache ISIS template and the Datanucleus template.
+ This template uses
+ * Bootstrap v3.3.7 (https://getbootstrap.com/) for navbar.
+ * Asciidoctor "foundation" CSS
+ * Bootswatch "cosmo" theme for Bootstrap (https://bootswatch.com/cosmo).
+ * Bootstrap TOC plugin v0.4.1 (https://afeld.github.io/bootstrap-toc/) for the table of contents.
+ * jQuery (necessary for Bootstrap's JavaScript plugins)
+ * Font-Awesome for some icons used by Asciidoctor
+ NOTE: tried using Font-Awesome CSS hosted locally but then fails to work!
+ -->
+ <link href="css/bootswatch/3.3.7/bootstrap-cosmo.css" rel="stylesheet"/>
+ <link href="css/bootstrap-toc/0.4.1/bootstrap-toc.min.css" rel="stylesheet"/>
+
+ <link href="css/asciidoctor/foundation.css" rel="stylesheet"/>
+ <link href="css/datanucleus_theme.css" rel="stylesheet"/>
+ <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
+ <script src="js/bootstrap/3.3.7/bootstrap.min.js"></script>
+ <script src="js/bootstrap-toc/0.4.1/bootstrap-toc.min.js"></script>
+
+ <!-- Coderay syntax formatter -->
+ <style type="text/css">
+ /* Stylesheet for CodeRay to match GitHub theme | MIT License | http://foundation.zurb.com */
+/*pre.CodeRay {background-color:#f7f7f8;}*/
+.CodeRay .line-numbers{border-right:1px solid #d8d8d8;padding:0 0.5em 0 .25em}
+.CodeRay span.line-numbers{display:inline-block;margin-right:.5em;color:rgba(0,0,0,.3)}
+.CodeRay .line-numbers strong{color:rgba(0,0,0,.4)}
+table.CodeRay{border-collapse:separate;border-spacing:0;margin-bottom:0;border:0;background:none}
+table.CodeRay td{vertical-align: top;line-height:1.45}
+table.CodeRay td.line-numbers{text-align:right}
+table.CodeRay td.line-numbers>pre{padding:0;color:rgba(0,0,0,.3)}
+table.CodeRay td.code{padding:0 0 0 .5em}
+table.CodeRay td.code>pre{padding:0}
+.CodeRay .debug{color:#fff !important;background:#000080 !important}
+.CodeRay .annotation{color:#007}
+.CodeRay .attribute-name{color:#000080}
+.CodeRay .attribute-value{color:#700}
+.CodeRay .binary{color:#509}
+.CodeRay .comment{color:#998;font-style:italic}
+.CodeRay .char{color:#04d}
+.CodeRay .char .content{color:#04d}
+.CodeRay .char .delimiter{color:#039}
+.CodeRay .class{color:#458;font-weight:bold}
+.CodeRay .complex{color:#a08}
+.CodeRay .constant,.CodeRay .predefined-constant{color:#008080}
+.CodeRay .color{color:#099}
+.CodeRay .class-variable{color:#369}
+.CodeRay .decorator{color:#b0b}
+.CodeRay .definition{color:#099}
+.CodeRay .delimiter{color:#000}
+.CodeRay .doc{color:#970}
+.CodeRay .doctype{color:#34b}
+.CodeRay .doc-string{color:#d42}
+.CodeRay .escape{color:#666}
+.CodeRay .entity{color:#800}
+.CodeRay .error{color:#808}
+.CodeRay .exception{color:inherit}
+.CodeRay .filename{color:#099}
+.CodeRay .function{color:#900;font-weight:bold}
+.CodeRay .global-variable{color:#008080}
+.CodeRay .hex{color:#058}
+.CodeRay .integer,.CodeRay .float{color:#099}
+.CodeRay .include{color:#555}
+.CodeRay .inline{color:#000}
+.CodeRay .inline .inline{background:#ccc}
+.CodeRay .inline .inline .inline{background:#bbb}
+.CodeRay .inline .inline-delimiter{color:#d14}
+.CodeRay .inline-delimiter{color:#d14}
+.CodeRay .important{color:#555;font-weight:bold}
+.CodeRay .interpreted{color:#b2b}
+.CodeRay .instance-variable{color:#008080}
+.CodeRay .label{color:#970}
+.CodeRay .local-variable{color:#963}
+.CodeRay .octal{color:#40e}
+.CodeRay .predefined{color:#369}
+.CodeRay .preprocessor{color:#579}
+.CodeRay .pseudo-class{color:#555}
+.CodeRay .directive{font-weight:bold}
+.CodeRay .type{font-weight:bold}
+.CodeRay .predefined-type{color:inherit}
+.CodeRay .reserved,.CodeRay .keyword {color:#000;font-weight:bold}
+.CodeRay .key{color:#808}
+.CodeRay .key .delimiter{color:#606}
+.CodeRay .key .char{color:#80f}
+.CodeRay .value{color:#088}
+.CodeRay .regexp .delimiter{color:#808}
+.CodeRay .regexp .content{color:#808}
+.CodeRay .regexp .modifier{color:#808}
+.CodeRay .regexp .char{color:#d14}
+.CodeRay .regexp .function{color:#404;font-weight:bold}
+.CodeRay .string{color:#d20}
+.CodeRay .string .string .string{background:#ffd0d0}
+.CodeRay .string .content{color:#d14}
+.CodeRay .string .char{color:#d14}
+.CodeRay .string .delimiter{color:#d14}
+.CodeRay .shell{color:#d14}
+.CodeRay .shell .delimiter{color:#d14}
+.CodeRay .symbol{color:#990073}
+.CodeRay .symbol .content{color:#a60}
+.CodeRay .symbol .delimiter{color:#630}
+.CodeRay .tag{color:#008080}
+.CodeRay .tag-special{color:#d70}
+.CodeRay .variable{color:#036}
+.CodeRay .insert{background:#afa}
+.CodeRay .delete{background:#faa}
+.CodeRay .change{color:#aaf;background:#007}
+.CodeRay .head{color:#f8f;background:#505}
+.CodeRay .insert .insert{color:#080}
+.CodeRay .delete .delete{color:#800}
+.CodeRay .change .change{color:#66f}
+.CodeRay .head .head{color:#f4f}
+ </style>
+</head>
+<body data-spy="scroll" data-target="#toc">
+<!-- Navbar -->
+<nav class="navbar navbar-default navbar-static-top">
+ <div class="container">
+ <div class="navbar-header">
+ <!-- Three line menu button for use on mobile screens -->
+ <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <!-- 'style' added to align image with navbar. FIX THIS -->
+ <a class="navbar-brand" href="https://db.apache.org/jdo/">
+ <img style="margin-top: -12px;" alt="Brand" src="images/JDO_44x44.png"/>
+ </a>
+ <!-- TODO Any way to abstract the version from Maven? -->
+ <a class="navbar-brand" href="index.html">Apache JDO</a>
+ </div>
+ <!-- Navbar that will collapse on mobile screens -->
+ <div id="navbar" class="navbar-collapse collapse">
+ <ul class="nav navbar-nav">
+ <li class="dropdown">
+
+ <!-- menu item General -->
+
+
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">General<span class="caret"></span></a>
+
+ <ul class="dropdown-menu">
+ <li><a href="why_jdo.html">Why JDO?</a></li>
+ <li><a href="getting-started.html">Getting Started</a></li>
+ <li><a href="specifications.html">Specifications</a></li>
+ <li><a href="tck.html">TCK</a></li>
+ <li><a href="javadoc.html">API Javadoc</a></li>
+ <li role="separator" class="divider"></li>
+ <li><a href="jdo_v_jpa.html">JDO v JPA</a></li>
+ <li><a href="jdo_v_jpa_api.html">JDO v JPA : API</a></li>
+ <li><a href="jdo_v_jpa_orm.html">JDO v JPA : ORM</a></li>
+ <li role="separator" class="divider"></li>
+ <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+ <li><a href="impls.html">Implementations</a></li>
+ <li><a href="jdo_3_0_overview.html">JDO 3.0 Overview</a></li>
+ <li><a href="references.html">References</a></li>
+ <li><a href="glossary.html">Glossary</a></li>
+ </ul>
+ </li>
+
+ <!-- menu item API Usage -->
+
+ <li class="dropdown">
+
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">API Usage<span class="caret"></span></a>
+
+ <ul class="dropdown-menu">
+ <li><a href="jdohelper.html">JDO Helper</a></li>
+ <li><a href="pmf.html">PersistenceManagerFactory</a></li>
+ <li><a href="pm.html">PersistenceManager</a></li>
+ <li><a href="transactions.html">Transactions</a></li>
+ <li><a href="attach_detach.html">Attach-Detach</a></li>
+ <li><a href="fetchgroups.html">Fetch Groups</a></li>
+ <li><a href="state_transition.html">Object States</a></li>
+ <li><a href="object_retrieval.html">Object Retrieval</a></li>
+ <li><a href="exceptions.html">Exceptions</a></li>
+ <li role="separator" class="divider"></li>
+ <li><a href="guides-replication.html">Data Replication</a></li>
+ </ul>
+ </li>
+
+ <!-- menu item Types & Metadata -->
+
+ <li class="dropdown">
+
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false" style="background-color:#2385c6">Types & Metadata<span class="caret"></span></a>
+
+ <ul class="dropdown-menu">
+ <li><a href="class_types.html">Types of Classes</a></li>
+ <li><a href="field_types.html">Types of Fields</a></li>
+ <li role="separator" class="divider"></li>
+ <!-- <li class="dropdown-header">Metadata</li> -->
+ <li><a href="metadata.html">MetaData</a></li>
+ <li><a href="annotations.html">Annotations</a></li>
+ <li><a href="jdo_dtd.html">jdo DTD/XSD</a></li>
+ <li><a href="orm_dtd.html">orm DTD/XSD</a></li>
+ <li><a href="jdoquery_dtd.html">jdoquery DTD/XSD</a></li>
+ <li><a href="jdoconfig_dtd.html">jdoconfig DTD/XSD</a></li>
+ <li role="separator" class="divider"></li>
+ <li><a href="enhancement.html">Bytecode Enhancement</a></li>
+ </ul>
+ </li>
+
+ <!-- menu item Query -->
+
+ <li class="dropdown">
+
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Query<span class="caret"></span></a>
+
+ <ul class="dropdown-menu">
+ <li><a href="jdoql.html">JDOQL</a></li>
+ <li><a href="jdoql_result.html">Result</a></li>
+ <li><a href="jdoql_methods.html">Methods</a></li>
+ <li><a href="jdoql_quickref.pdf">Quick Ref PDF</a></li>
+ <li role="separator" class="divider"></li>
+ <li><a href="extents.html">Extents</a></li>
+ </ul>
+ </li>
+
+ <!-- menu item Community -->
+
+ <li class="dropdown">
+
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Community<span class="caret"></span></a>
+
+ <ul class="dropdown-menu">
+ <li><a href="get-involved.html">Get Involved</a></li>
+ <li><a href="team-list.html">Project Team</a></li>
+ <li><a href="mail-lists.html">Mailing Lists</a></li>
+ <li><a href="faq.html">FAQ</a></li>
+ </ul>
+ </li>
+
+ <!-- menu item Development -->
+
+ <li class="dropdown">
+
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Development<span class="caret"></span></a>
+
+ <ul class="dropdown-menu">
+ <li><a href="roadmap.html">RoadMap / TODO</a></li>
+ <li><a href="downloads.html">Downloads</a></li>
+ <li><a href="source-code.html">Source Code</a></li>
+ <li><a href="http://cwiki.apache.org/GMOxDEV/Coding+standards">Coding Standards</a></li>
+ <li><a href="issuetracking.html">Issue Tracking</a></li>
+ </ul>
+ </li>
+ </ul>
+ <!-- 'style' added to fix height of input box. FIX THIS -->
+ <form class="navbar-form navbar-left" role="search" id="search-form" action="https://www.google.com/search" method="get" style="padding: 1px 15px;">
+ <div class="form-group">
+ <input name="sitesearch" value="db.apache.org/jdo" type="hidden">
+ <input name="q" type="text" class="form-control" placeholder="Search" style="margin-top: 7px; padding: 1px; border-radius: 5px; height: 30px; vertical-align: middle;">
+ </div>
+ </form>
+ </div>
+ </div>
+</nav>
+<div class="container">
+
+ <!-- No TOC -->
+ <div class="row-fluid">
+ <div class="col-sm-12">
+
+ <!-- no heading -->
+
+ <div id="doc-content">
+ <div class="sect1">
+<h2 id="index">JDO : Annotations<a id="JDO_:_Annotations"></a></h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>One of the things that JDK 1.5 provides that can be of some use is
+annotations, and JDO provides its own set. When selecting to use
+annotations please bear in mind the following :</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>You must have the <strong>jdo-api</strong> jar in your CLASSPATH since this provides
+the annotations</p>
+</li>
+<li>
+<p>Annotations should really only be used for attributes of persistence
+that you won’t be changing at deployment. Things such as table and
+column names shouldn’t really be specified using annotations although it
+is permitted. Instead it would be better to put such information in an
+ORM MetaData file.</p>
+</li>
+<li>
+<p>Annotations can be added in two places - for the class as a whole, or
+for a field in particular.</p>
+</li>
+<li>
+<p>You can annotate fields or getters with field-level information. If
+you annotate fields then the fields are processed for persistence. If
+you annotate the methods (getters) then the methods (properties) are
+processed for persistence.</p>
+</li>
+<li>
+<p>Annotations are prefixed by the @ symbol and can take properties (in
+brackets after the name, comma-separated)</p>
+</li>
+</ul>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 33.3333%;">
+<col style="width: 33.3333%;">
+<col style="width: 33.3334%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Annotation</th>
+<th class="tableblock halign-left valign-top">Class/Field/Method</th>
+<th class="tableblock halign-left valign-top">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#PersistenceCapable">@PersistenceCapable</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies that
+the class/interface is persistent. In the case of an interface this
+would utilise JDO2’s "persistent-interface" capabilities</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#PersistenceAware">@PersistenceAware</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies that the
+class is not persistent but needs to be able to access fields of
+persistent classes</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Cacheable_Class">@Cacheable</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies whether this class
+can be cached in a Level 2 cache or not.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#EmbeddedOnly">@EmbeddedOnly</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies that the class is
+persistent and can only be persisted embedded in another persistent
+class</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#DatastoreIdentity">@DatastoreIdentity</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies the
+details for generating datastore-identity for this class</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Version">@Version</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies any versioning process for
+objects of this class</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#FetchPlans">@FetchPlans</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Defines a series of fetch plans</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#FetchPlan">@FetchPlan</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Defines a fetch plan</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#FetchGroups">@FetchGroups</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Defines a series of fetch
+groups for this class</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#FetchGroup">@FetchGroup</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Defines a fetch group for this
+class</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Sequence">@Sequence</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Defines a sequence for use by this
+class</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Queries">@Queries</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Defines a series of named queries for
+this class</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Query">@Query</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Defines a named query for this class</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Inheritance">@Inheritance</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies the inheritance model
+for persisting this class</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Discriminator">@Discriminator</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies any discriminator
+for this class to be used for determining object types</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#PrimaryKey_Class">@PrimaryKey</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines the primary
+key constraint for this class</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Indices">@Indices</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines a series of indices for
+this class</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Index_Class">@Index</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines an index for the class
+as a whole (typically a composite index)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Uniques">@Uniques</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines a series of unique
+constraints for this class</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Unique_Class">@Unique</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines a unique constraint
+for the class as a whole (typically a composite)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#ForeignKeys">@ForeignKeys</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines a series of
+foreign-keys (typically for non-mapped columns/tables)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#ForeignKey_Class">@ForeignKey</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines a foreign-key
+for the class as a whole (typically for non-mapped columns/tables)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Joins">@Joins</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines a series of joins to
+secondary tables from this table</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Join_Class">@Join</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines a join to a secondary
+table from this table</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Columns">@Columns</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines a series of columns that
+dont have associated fields ("unmapped columns")</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Persistent">@Persistent</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Defines the persistence
+for a field/property of the class</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Serialized">@Serialized</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Defines this field as
+being stored serialised</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#NotPersistent">@NotPersistent</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Defines this field
+as being not persisted</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Transactional">@Transactional</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Defines this field
+as being transactional (not persisted, but managed)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Cacheable">@Cacheable</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies whether this
+field/property can be cached in a Level 2 cache or not.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#PrimaryKey">@PrimaryKey</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Defines this field as
+being (part of) the primary key</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Element">@Element</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Defines the details of elements
+of an array/collection stored in this field</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Key">@Key</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Defines the details of keys of a map
+stored in this field</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Value">@Value</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Defines the details of values of a
+map stored in this field</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Order">@Order</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines the details of
+ordering of an array/collection stored in this field</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Join">@Join</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines the join to a join table
+for a collection/array/map</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Embedded">@Embedded</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines that this field
+is embedded and how it is embedded</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Columns">@Columns</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines a series of
+columns where a field is persisted</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">@Column</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines a column where a
+field is persisted</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Index">@Index</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines an index for the field</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Unique">@Unique</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines a unique constraint
+for the field</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#ForeignKey">@ForeignKey</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Field/Method</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Defines a foreign
+key for the field</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extensions">@Extensions</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class/Field/Method</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Defines a series of
+JDO extensions</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">@Extension</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class/Field/Method</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Defines a JDO
+extension</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="PersistenceCapable"></a></p>
+</div>
+<div class="sect2">
+<h3 id="__persistencecapable_a_id_apersistencecapable_a">@PersistenceCapable<a id="aPersistenceCapable"></a></h3>
+<div class="paragraph">
+<p>This annotation is used when you want to mark a class as persistent. It
+equates to the <class> MetaData element (though with only some of its
+attributes). Specified on the <strong>class</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">requiresExtent</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether an extent is required for this class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">embeddedOnly</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether objects of this class can only be stored
+embedded in other objects</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">detachable</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether objects of this class can be detached</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">identityType</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">IdentityType</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Type of identity (APPLICATION, DATASTORE,
+NONDURABLE)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">DATASTORE</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">objectIdClass</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Object-id class</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">table</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the table where this class is persisted</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">catalog</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the catalog where this table is
+persisted</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">schema</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the schema where this table is persisted</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">cacheable</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the class can be L2 cached. <strong>From JDO2.2</strong></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>true</strong></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">serializeRead</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether to default reads of this object type to
+lock the object</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">extensions</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor extensions</p></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable(identityType=IdentityType.APPLICATION)
+public class MyClass
+{
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="PersistenceAware"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__persistenceaware_a_id_apersistenceaware_a">@PersistenceAware<a id="aPersistenceAware"></a></h3>
+<div class="paragraph">
+<p>This annotation is used when you want to mark a class as being used in
+persistence but not being persistable. That is "persistence-aware" in
+JDO terminology. It has no attributes. Specified on the <strong>class</strong>.</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceAware
+public class MyClass
+{
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>See the documentation for <a href="class_types.html">Class Types</a></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Cacheable_Class"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__cacheable_a_id_acacheable_a">@Cacheable<a id="aCacheable"></a></h3>
+<div class="paragraph">
+<p>This annotation is a shortcut for
+@PersistenceCapable(cacheable={value}) specifying whether the class can
+be cached in a Level 2 cache. Specified on the <strong>class</strong>. The default</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the class is cacheable</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>true</strong></p></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@Cacheable("false")
+public class MyClass
+{
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="EmbeddedOnly"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__embeddedonly_a_id_aembeddedonly_a">@EmbeddedOnly<a id="aEmbeddedOnly"></a></h3>
+<div class="paragraph">
+<p>This annotation is a shortcut for
+@PersistenceCapable(embeddedOnly="true") meaning that the class can only
+be persisted embedded into another class. It has no attributes.
+Specified on the <strong>class</strong>.</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>@EmbeddedOnly
+public class MyClass
+{
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Inheritance"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__inheritance_a_id_ainheritance_a">@Inheritance<a id="aInheritance"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define the inheritance for a class. Specified on the
+<strong>class</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">strategy</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">InheritanceStrategy</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The inheritance strategy (NEW_TABLE,
+SUBCLASS_TABLE, SUPERCLASS_TABLE)</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">customStrategy</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Name of a custom inheritance strategy
+(depending on what your JDO implementation supports</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+@Inheritance(strategy=InheritanceStrategy.NEW_TABLE)
+public class MyClass
+{
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Discriminator"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__discriminator_a_id_adiscriminator_a">@Discriminator<a id="aDiscriminator"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define a discriminator to be stored with instances of
+this class and is used to determine the types of the objects being
+stored. Specified on the <strong>class</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">strategy</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">DiscriminatorStrategy</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The discriminator strategy (VALUE_MAP,
+CLASS_NAME, NONE)</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Value to use for instances of this type when using
+strategy of VALUE_MAP</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">column</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the column to use to store the
+discriminator</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">indexed</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether the discriminator column is to be
+indexed</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Column definitions used for
+storing the discriminator</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+@Inheritance(strategy=InheritanceStrategy.NEW_TABLE)
+@Discriminator(strategy=DiscriminatorStrategy.CLASS_NAME)
+public class MyClass
+{
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="DatastoreIdentity"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__datastoreidentity_a_id_adatastoreidentity_a">@DatastoreIdentity<a id="aDatastoreIdentity"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define the identity when using datastore-identity for
+the class. Specified on the <strong>class</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">strategy</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">IdGeneratorStrategy</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The inheritance strategy (NATIVE,
+SEQUENCE, IDENTITY, INCREMENT, UUIDSTRING, UUIDHEX)</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">customStrategy</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Name of a custom id generation strategy (e.g
+"max", "auid"). This overrides the value of "strategy"</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">sequence</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the sequence to use (when using SEQUENCE
+strategy) - refer to @Sequence</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">column</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the column for the datastore identity</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Column definition for the
+column(s) for the datastore identity</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">extensions</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor extensions</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+@DatastoreIdentity(strategy=IdGeneratorStrategy.INCREMENT)
+public class MyClass
+{
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Version"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__version_a_id_aversion_a">@Version<a id="aVersion"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define the versioning details for use with optimistic
+transactions. Specified on the <strong>class</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">strategy</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">VersionStrategy</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The version strategy (NONE, STATE_IMAGE,
+DATE_TIME, VERSION_NUMBER)</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">indexed</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the version column(s) is indexed</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">column</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the column for the version</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Column definition for the
+column(s) for the version</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">extensions</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor extensions</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+@Version(strategy=VersionStrategy.VERSION_NUMBER)
+public class MyClass
+{
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>See the documentation for <a href="transactions.html">transactions</a></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="PrimaryKey_Class"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__primarykey_a_id_aprimarykey_a">@PrimaryKey<a id="aPrimaryKey"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define the primary key constraint for a class. Maps
+across to the <primary-key> MetaData element. Specified on the <strong>class</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the primary key constraint</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">column</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the column for this key</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Column definition for the
+column(s) of this key</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+@PrimaryKey(name="MYCLASS_PK")
+public class MyClass
+{
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="FetchPlans"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__fetchplans_a_id_afetchplans_a">@FetchPlans<a id="aFetchPlans"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define a set of fetch plans. Specified on the
+<strong>class</strong>. Used by named queries</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#FetchPlan">FetchPlan</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Array of fetch plans - see
+@FetchPlan annotation</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+@FetchPlans({@FetchPlan(name="plan_3", maxFetchDepth=3, fetchGroups={"group1", "group4"}),
+ @FetchPlan(name="plan_4", maxFetchDepth=2, fetchGroups={"group1", "group2"})})
+public class MyClass
+{
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>See the documentation for <a href="fetchgroups.html">FetchGroups</a></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="FetchPlan"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__fetchplan_a_id_afetchplan_a">@FetchPlan<a id="aFetchPlan"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define a fetch plan Is equivalent to the <fetch-plan>
+metadata element. Specified on the <strong>class</strong>. Used by named queries</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the FetchPlan</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">maxFetchDepth</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Maximum fetch depth</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">fetchSize</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Size hint for fetching query result sets</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">0</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">fetchGroups</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Names of the fetch groups included in this
+FetchPlan.</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+@FetchPlan(name="plan_3", maxFetchDepth=3, fetchGroups={"group1", "group4"})
+public class MyClass
+{
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>See the documentation for <a href="fetchgroups.html">FetchGroups</a></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="FetchGroups"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__fetchgroups_a_id_afetchgroups_a">@FetchGroups<a id="aFetchGroups"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define a set of fetch groups for a class. Specified
+on the <strong>class</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#FetchGroup">FetchGroup</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Array of fetch groups - see
+@FetchGroup annotation</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+@FetchGroups({@FetchGroup(name="one_two", members={@Persistent(name="field1"), @Persistent(name="field2")}),
+ @FetchGroup(name="three", members={@Persistent(name="field3")})})
+public class MyClass
+{
+ @Persistent
+ String field1;
+
+ @Persistent
+ String field2;
+
+ @Persistent
+ String field3;
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>See the documentation for <a href="fetchgroups.html">FetchGroups</a></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="FetchGroup"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__fetchgroup_a_id_afetchgroup_a">@FetchGroup<a id="aFetchGroup"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define a fetch group. Is equivalent to the
+<fetch-group> metadata element. Specified on the <strong>class</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the fetch group</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">postLoad</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether to call jdoPostLoad after loading this fetch
+group</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">members</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Persistent">Persistent</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Definitions of the
+fields/properties to include in this fetch group</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+@FetchGroup(name="one_two", members={@Persistent(name="field1"), @Persistent(name="field2")})
+public class MyClass
+{
+ @Persistent
+ String field1;
+
+ @Persistent
+ String field2;
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>See the documentation for <a href="fetchgroups.html">FetchGroups</a></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Sequence"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__sequence_a_id_asequence_a">@Sequence<a id="aSequence"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define a sequence generator. Is equivalent to the
+<sequence> metadata element. Specified on the <strong>class</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the sequence</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">strategy</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">SequenceStrategy</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Strategy for the sequence
+(NONTRANSACTIONAL, CONTIGUOUS, NONCONTIGUOUS)</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">datastoreSequence</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Name of a datastore sequence that this maps
+to</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">factoryClass</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Factory class to use to generate the sequence</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">initialValue</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Initial value of the sequence</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocationSize</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Allocation size of the sequence</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">50</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">extensions</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor extensions</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Queries"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__queries_a_id_aqueries_a">@Queries<a id="aQueries"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define a set of named queries for a class. Specified
+on the <strong>class</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Query">Query</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Array of queries - see @Query annotation</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+@Queries({@Query(name="PeopleCalledSmith", language="JDOQL",
+ value="SELECT FROM mydomain.Person WHERE surname == \"Smith\""),
+ @Query(name="PeopleCalledJones", language="JDOQL",
+ value="SELECT FROM mydomain.Person WHERE surname == \"Jones\"")})
+public class Person
+{
+ @Persistent
+ String surname;
+
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Query"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__query_a_id_aquery_a">@Query<a id="aQuery"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define a named query. Is equivalent to the <query>
+metadata element. Specified on the <strong>class</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the query</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The query string itself</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">language</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Language of the query (JDOQL, SQL, …​)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">JDOQL</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">unmodifiable</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the query is not modifiable at runtime</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">unique</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the query returns unique results (for SQL
+queries only)</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">resultClass</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Result class to use (for SQL queries only)</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">fetchPlan</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Name of a named FetchPlan to use with this query</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">extensions</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor extensions</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+@Query(name="PeopleCalledSmith", language="JDOQL",
+ value="SELECT FROM mydomain.Person WHERE surname == \"Smith\"")
+public class Person
+{
+ @Persistent
+ String surname;
+
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Indices"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__indices_a_id_aindices_a">@Indices<a id="aIndices"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define a set of indices for a class. Specified on the
+<strong>class</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Index_Class">Index</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Array of indices - see @Index
+annotation</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+@Indices({@Index(name="MYINDEX_1", members={"field1","field2"}), @Index(name="MYINDEX_2", members={"field3"})})
+public class Person
+{
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Index_Class"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__index_a_id_aindex_a">@Index<a id="aIndex"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define an index for the class as a whole typically
+being a composite index across multiple columns or fields/properties. Is
+equivalent to the <index> metadata element when specified under class.
+Specified on the <strong>class</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the index</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">table</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the table for the index</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">unique</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether the index is unique</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">members</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Names of the fields/properties that make up
+this index</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Columns that make up this index</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+@Index(name="MY_COMPOSITE_IDX", members={"field1", "field2"})
+public class MyClass
+{
+ @Persistent
+ String field1;
+
+ @Persistent
+ String field2;
+
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Uniques"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__uniques_a_id_auniques_a">@Uniques<a id="aUniques"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define a set of unique constraints for a class.
+Specified on the <strong>class</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Unique_Class">Unique</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Array of constraints - see @Unique
+annotation</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+@Uniques({@Unique(name="MYCONST_1", members={"field1","field2"}), @Unique(name="MYCONST_2", members={"field3"})})
+public class Person
+{
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Unique_Class"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__unique_a_id_aunique_a">@Unique<a id="aUnique"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define a unique constraints for the class as a whole
+typically being a composite constraint across multiple columns or
+fields/properties. Is equivalent to the <unique> metadata element when
+specified under class. Specified on the <strong>class</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the constraint</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">table</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the table for the constraint</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">deferred</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether the constraint is deferred</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">members</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Names of the fields/properties that make up
+this constraint</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Columns that make up this
+constraint</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+@Unique(name="MY_COMPOSITE_IDX", members={"field1", "field2"})
+public class MyClass
+{
+ @Persistent
+ String field1;
+
+ @Persistent
+ String field2;
+
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="ForeignKeys"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__foreignkeys_a_id_aforeignkeys_a">@ForeignKeys<a id="aForeignKeys"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define a set of foreign-key constraints for a class.
+Specified on the <strong>class</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#ForeignKey_Class">ForeignKey</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Array of FK constraints -
+see @ForeignKey annotation</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="ForeignKey_Class"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__foreignkey_a_id_aforeignkey_a">@ForeignKey<a id="aForeignKey"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define a foreign-key constraint for the class.
+Specified on the <strong>class</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the constraint</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">table</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the table that the FK is to</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">deferred</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether the constraint is deferred</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">unique</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether the constraint is unique</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">deleteAction</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Action to apply to the FK to be
+used on deleting</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction.RESTRICT</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">updateAction</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Action to apply to the FK to be
+used on updating</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction.RESTRICT</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">members</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Names of the fields/properties that compose
+this FK.</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Columns that compose this FK.</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Joins"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__joins_a_id_ajoins_a">@Joins<a id="aJoins"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define a set of joins (to secondary tables) for a
+class. Specified on the <strong>class</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Join_Class">Join</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Array of joins - see @Join annotation</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+@Joins({@Join(table="MY_OTHER_TABLE", column="MY_PK_COL"),
+ @Join(table="MY_SECOND_TABLE", column="MY_PK_COL")})
+public class MyClass
+{
+ @Persistent(table="MY_OTHER_TABLE")
+ String myField;
+
+ @Persistent(table="MY_SECOND_TABLE")
+ String myField2;
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Join_Class"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__join_a_id_ajoin_a">@Join<a id="aJoin"></a></h3>
+<div class="paragraph">
+<p>Annotation used to specify a join for a secondary table. Specified on
+the <strong>class</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">table</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Table name used when joining the PK of a FCO class
+table to a secondary table.</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">column</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the column used to join to the PK of the
+primary table (when only one column used)</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">outer</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether to use an outer join when retrieving
+fields/properties stored in the secondary table</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the colums used to join
+to the PK of the primary table (when multiple columns used)</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">extensions</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor extensions</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable(name="MYTABLE")
+@Join(table="MY_OTHER_TABLE", column="MY_PK_COL")
+public class MyClass
+{
+ @Persistent(name="MY_OTHER_TABLE")
+ String myField;
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Columns_Class"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__columns_a_id_acolumns_a">@Columns<a id="aColumns"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define the columns which have no associated field in
+the class. User should specify a minimum of @Column "name", "jdbcType",
+and "insertValue". Specified on the <strong>class</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Array of columns - see @Column
+annotation</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+@Columns(@Column(name="MY_OTHER_COL", jdbcType="VARCHAR", insertValue="N/A")
+public class MyClass
+{
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Persistent"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__persistent_a_id_apersistent_a">@Persistent<a id="aPersistent"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define the fields/properties to be persisted. Is
+equivalent to the <field> and <property> metadata elements. Specified on
+the <strong>field/method</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">persistenceModifier</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">PersistenceModifier</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the field is
+persistent (PERSISTENT, TRANSACTIONAL, NONE)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">[depends on field type]</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">defaultFetchGroup</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the field is part of the DFG</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nullValue</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">NullValue</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Required behaviour when inserting a null value
+for this field (NONE, EXCEPTION, DEFAULT).</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">NONE</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">embedded</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether this field as a whole is embedded. Use
+@Embedded to specify details.</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">embeddedElement</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the element stored in this
+collection/array field/property is embedded</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">embeddedKey</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the key stored in this map field/property
+is embedded</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">embeddedValue</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the value stored in this map
+field/property is embedded</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">serialized</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether this field/property as a whole is
+serialised</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">serializedElement</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the element stored in this
+collection/array field/property is serialised</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">serializedKey</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the key stored in this map
+field/property is serialised</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">serializedValue</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the value stored in this map
+field/property is serialised</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">dependent</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether this field is dependent, deleting the
+related object when deleting this object</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">dependentElement</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the element stored in this
+field/property is dependent</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">dependentKey</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the key stored in this field/property is
+dependent</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">dependentValue</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the value stored in this field/property
+is dependent</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">primaryKey</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether this field is (part of) the primary key</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">valueStrategy</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">IdGeneratorStrategy</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Strategy to use when generating
+values for the field (NATIVE, SEQUENCE, IDENTITY, INCREMENT, UUIDSTRING,
+UUIDHEX)</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">customValueStrategy</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Name of a custom id generation strategy
+(e.g "max", "auid"). This overrides the value of "valueStrategy"</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">sequence</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the sequence when using valueStrategy of
+SEQUENCE - refer to @Sequence</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">types</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Type(s) of field (when using interfaces/reference
+types).</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">mappedBy</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Field in other class when the relation is
+bidirectional to signify the owner of the relation</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">table</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the table where this field is persisted.
+If this field is a collection/map/array then the table refers to a join
+table, otherwise this refers to a secondary table.</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the field when defining an embedded field.</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Column definition(s) for the
+columns into which this field is persisted. This is only typically used
+when specifying columns of a field of an embedded class.</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">cacheable</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the field/property can be L2 cached. <strong>From
+JDO2.2</strong></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>true</strong></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">extensions</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor extensions</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">recursionDepth</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Recursion depth for this field when fetching.
+<strong>Only applicable when specified within @FetchGroup</strong></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">loadFetchGroup</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Name of a fetch group to activate when a load
+of this field is initiated (due to it being currently unloaded). Not
+used for getObjectById, queries, extents etc. Better to use @FetchGroup
+and define your groups</p></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+public class MyClass
+{
+ @Persistent(primaryKey="true")
+ String myField;
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>See the documentation for <a href="field_types.html">Field Types</a></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Serialized"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__serialized_a_id_aserialized_a">@Serialized<a id="aSerialized"></a></h3>
+<div class="paragraph">
+<p>This annotation is a shortcut for @Persistent(serialized="true") meaning
+that the field is stored serialized. It has no attributes. Specified on
+the <strong>field/method</strong>.</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+public class MyClass
+{
+ @Serialized
+ Object myField;
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="NotPersistent"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__notpersistent_a_id_anotpersistent_a">@NotPersistent<a id="aNotPersistent"></a></h3>
+<div class="paragraph">
+<p>This annotation is a shortcut for
+@Persistent(persistenceModifier=PersistenceModifier.NONE) meaning that
+the field/property is not persisted. It has no attributes. Specified on
+the <strong>field/method</strong>.</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+public class MyClass
+{
+ @NotPersistent
+ String myOtherField;
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>See the documentation for <a href="field_types.html">Field Types</a></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Transactional"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__transactional_a_id_atransactional_a">@Transactional<a id="aTransactional"></a></h3>
+<div class="paragraph">
+<p>This annotation is a shortcut for
+@Persistent(persistenceModifier=PersistenceModifier.TRANSACTIONAL)
+meaning that the field/property is not persisted yet managed. It has no
+attributes. Specified on the <strong>field/method</strong>.</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+public class MyClass
+{
+ @Transactional
+ String myOtherField;
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>See the documentation for <a href="field_types.html">Field Types</a></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Cacheable"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__cacheable_a_id_acacheable_a_2">@Cacheable<a id="aCacheable"></a></h3>
+<div class="paragraph">
+<p>This annotation is a shortcut for @Persistent(cacheable={value})
+specifying whether the field/property can be cached in a Level 2 cache.
+Specified on the <strong>field/property</strong>. The default</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the field/property is cacheable</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>true</strong></p></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>public class MyClass
+{
+ @Cacheable("false")
+ Collection elements;
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="PrimaryKey"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__primarykey_a_id_aprimarykey_a_2">@PrimaryKey<a id="aPrimaryKey"></a></h3>
+<div class="paragraph">
+<p>This annotation is a shortcut for @Persistent(primaryKey="true") meaning
+that the field/property is part of the primary key for the class. No
+attributes are needed when specified like this. Specified on the
+<strong>field/method</strong>.</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+public class MyClass
+{
+ @PrimaryKey
+ String myOtherField;
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Element"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__element_a_id_aelement_a">@Element<a id="aElement"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define the element for any collection/array to be
+persisted. Maps across to the <collection>, <array> and <element>
+MetaData elements. Specified on the <strong>field/method</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">types</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Type(s) of element</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">When using an array is not needed.
+When using a collection will be taken from the collection definition if
+using generics, otherwise must be specified.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">embedded</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the element is embedded into a join table</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">serialized</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the element is serialised into the join
+table</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">dependent</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the element objects are dependent when
+deleting the owner collection/array</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">mappedBy</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Field in the element class that represents this
+object (when the relation is bidirectional)</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">embeddedMapping</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Embedded">Embedded</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Definition of any
+embedding of the (persistable) element. Only 1 "Embedded" should be
+provided</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">table</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the table for this element</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">column</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the column for this element</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">foreignKey</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of any foreign-key constraint to add</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">generateForeignKey</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether to generate a FK constraint
+for the element (when not specifying the name)</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">deleteAction</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Action to be applied to the
+foreign key for this element for action upon deletion</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">updateAction</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Action to be applied to the
+foreign key for this element for action upon update</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">index</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of any index constraint to add</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">indexed</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether this element column is indexed</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">unique</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether this element column is unique</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">uniqueKey</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of any unique key constraint to add</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Column definition for the
+column(s) of this element</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">extensions</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor extensions</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+public class MyClass
+{
+ @Element(types=mydomain.MyElementClass.class, dependent="true")
+ Collection myField;
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Order"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__order_a_id_aorder_a">@Order<a id="aOrder"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define the ordering of an order-based
+Collection/array to be persisted. Maps across to the <order> MetaData
+element. Specified on the <strong>field/method</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">mappedBy</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Field in the element class that represents the
+ordering of the collection/array</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">column</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the column for this order</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Column definition for the
+column(s) of this order</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">extensions</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor extensions</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+public class MyClass
+{
+ @Element(types=mydomain.MyElementClass.class, dependent="true")
+ @Order(column="ORDER_IDX")
+ Collection myField;
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Key"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__key_a_id_akey_a">@Key<a id="aKey"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define the key for any map to be persisted. Maps
+across to the <map> and <key> MetaData elements. Specified on the
+<strong>field/method</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">types</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Type(s) of key.</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">When using generics will be taken from
+the Map definition, otherwise must be specified</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">embedded</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the key is embedded into a join table</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">serialized</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the key is serialised into the join table</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">dependent</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the key objects are dependent when deleting
+the owner map</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">mappedBy</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Used to specify the field in the value class where
+the key is stored (optional).</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">embeddedMapping</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Embedded">Embedded</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Definition of any
+embedding of the (persistable) key. Only 1 "Embedded" should be provided</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">table</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the table for this key</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">column</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the column for this key</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">foreignKey</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of any foreign-key constraint to add</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">generateForeignKey</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether to generate a FK constraint
+for the key (when not specifying the name)</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">deleteAction</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Action to be applied to the
+foreign key for this key for action upon deletion</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">updateAction</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Action to be applied to the
+foreign key for this key for action upon update</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">index</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of any index constraint to add</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">indexed</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether this key column is indexed</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">uniqueKey</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of any unique key constraint to add</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">unique</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether this key column is unique</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Column definition for the
+column(s) of this key</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">extensions</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor extensions</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+public class MyClass
+{
+ @Key(types=java.lang.String.class)
+ Map myField;
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Value"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__value_a_id_avalue_a">@Value<a id="aValue"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define the value for any map to be persisted. Maps
+across to the <map> and <value> MetaData elements. Specified on the
+<strong>field/method</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">types</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Class[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Type(s) of value.</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">When using generics will be taken
+from the Map definition, otherwise must be specified</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">embedded</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the value is embedded into a join table</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">serialized</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the value is serialised into the join table</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">dependent</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the value objects are dependent when
+deleting the owner map</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">mappedBy</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Used to specify the field in the key class where the
+value is stored (optional).</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">embeddedMapping</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Embedded">Embedded</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Definition of any
+embedding of the (persistable) value. Only 1 "Embedded" should be
+provided</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">table</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the table for this value</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">column</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the column for this value</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">foreignKey</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of any foreign-key constraint to add</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">deleteAction</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Action to be applied to the
+foreign key for this value for action upon deletion</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">generateForeignKey</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether to generate a FK constraint
+for the value (when not specifying the name)</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">updateAction</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Action to be applied to the
+foreign key for this value for action upon update</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">index</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of any index constraint to add</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">indexed</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether this value column is indexed</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">uniqueKey</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of any unique key constraint to add</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">unique</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether this value column is unique</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Column definition for the
+column(s) of this value</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">extensions</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor extensions</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+public class MyClass
+{
+ @Key(types=java.lang.String.class)
+ @Value(types=mydomain.MyValueClass.class, dependent="true")
+ Map myField;
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Join"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__join_a_id_ajoin_a_2">@Join<a id="aJoin"></a></h3>
+<div class="paragraph">
+<p>Annotation used to specify a join to a join table for a
+collection/array/map. Specified on the <strong>field/method</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">table</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the table</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">column</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the column to join our PK to in the join
+table (when only one column used)</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">primaryKey</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of any primary key constraint to add for
+the join table</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">generatePrimaryKey</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether to generate a PK constraint
+on the join table (when not specifying the name)</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">foreignKey</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of any foreign-key constraint to add</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">generateForeignKey</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether to generate a FK constraint
+on the join table (when not specifying the name)</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">index</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of any index constraint to add</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">indexed</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether the join column(s) is indexed</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">uniqueKey</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of any unique constraint to add</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">unique</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether the join column(s) has a unique
+constraint</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">columns</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the columns to join our
+PK to in the join table (when multiple columns used)</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">extensions</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor extensions</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+public class MyClass
+{
+ @Persistent
+ @Element(types=mydomain.MyElement.class)
+ @Join(table="MYCLASS_ELEMENTS", column="MYCLASS_ELEMENTS_PK")
+ Collection myField;
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Embedded"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__embedded_a_id_aembedded_a">@Embedded<a id="aEmbedded"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define that the field contents is embedded into the
+same table as this field Maps across to the <embedded> MetaData element.
+Specified on the <strong>field/method</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ownerMember</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : The field/property in the embedded object
+that links back to the owning object (where it has a bidirectional
+relation)</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nullIndicatorColumn</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : The column in the embedded object
+used to judge if the embedded object is null.</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nullIndicatorValue</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : The value in the null column to
+interpret the object as being null.</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">members</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Persistent">Persistent</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Field/property
+definitions for this embedding.</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+public class MyClass
+{
+ @Embedded(members={
+ @Persistent(name="field1", columns=@Column(name="OTHER_FLD_1")),
+ @Persistent(name="field2", columns=@Column(name="OTHER_FLD_2"))
+ }
+ MyOtherClass myField;
+ ...
+}
+
+@PersistenceCapable
+@EmbeddedOnly
+public class MyOtherClass
+{
+ @Persistent
+ String field1;
+
+ @Persistent
+ String field2;
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Columns"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__columns_a_id_acolumns_a_2">@Columns<a id="aColumns"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define the columns into which a field is persisted.
+If the field is persisted into a single column then @Column should be
+used. Specified on the <strong>field/method</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Column">Column</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Array of columns - see @Columns
+annotation</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+public class MyClass
+{
+ @Persistent
+ @Columns({@Column(name="RED"), @Column(name="GREEN"), @Column(name="BLUE"), @Column(name="ALPHA")})
+ Color myField;
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Column"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__column_a_id_acolumn_a">@Column<a id="aColumn"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define that the colum where a field is persisted. Is
+equivalent to the <column> metadata element when specified under field.
+Specified on the <strong>field/method</strong> (and within other annotations).</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the column</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">target</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Column in the other class that this maps to</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">targetMember</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Field/Property in the other class that this
+maps to</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">jdbcType</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : JDBC Type to use for persisting into this
+column</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">sqlType</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : SQL Type to use for persisting into this column</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">length</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Max length of data to store in this column</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">scale</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Max number of floating points of data to store in
+this column</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allowsNull</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether null is allowed to be persisted into
+this column</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">defaultValue</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Default value to persist into this column.
+If you want the default to be NULL, then put this as "#NULL"</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">insertValue</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Value to insert into this column when it is
+an "unmapped" column. If you want the inserted value to be NULL, then
+put this as "#NULL"</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">position</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Position of this column in the owning table (0 = first)</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">extensions</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor extensions</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+public class MyClass
+{
+ @Persistent
+ @Column(name="MYCOL", jdbcType="VARCHAR", length=40)
+ String field1;
+
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Index"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__index_a_id_aindex_a_2">@Index<a id="aIndex"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define that this field is indexed. Is equivalent to
+the <index> metadata element when specified under field. Specified on
+the <strong>field/method</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the index</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">unique</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether the index is unique</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+public class MyClass
+{
+ @Persistent
+ @Index(name="MYFIELD1_IDX")
+ String field1;
+
+ @Persistent
+ @Index(name="MYFIELD2_IDX", unique="true")
+ String field2;
+
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Unique"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__unique_a_id_aunique_a_2">@Unique<a id="aUnique"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define that this field has a unique constraint. Is
+equivalent to the <unique> metadata element when specified under field.
+Specified on the <strong>field/method</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the constraint</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">deferred</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether the constraint is deferred</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+public class MyClass
+{
+ @Persistent
+ @Unique(name="MYFIELD1_IDX")
+ String field1;
+
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="ForeignKey"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__foreignkey_a_id_aforeignkey_a_2">@ForeignKey<a id="aForeignKey"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define the foreign key for a relationship field. Is
+equivalent to the <foreign-key> metadata element when specified under
+field. Specified on the <strong>field/method</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Name of the constraint</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">deferred</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether the constraint is deferred</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">unique</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Whether the constraint is unique</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">deleteAction</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Action to apply to the FK to be
+used on deleting</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction.RESTRICT</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">updateAction</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ORM : Action to apply to the FK to be
+used on updating</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ForeignKeyAction.RESTRICT</p></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+public class MyClass
+{
+ @Persistent
+ @ForeignKey(name="MYFIELD1_FK", deleteAction=ForeignKeyAction.RESTRICT)
+ String field1;
+
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Extensions"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__extensions_a_id_aextensions_a">@Extensions<a id="aExtensions"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define a set of extensions specific to the JDO2
+implementation being used. Specified on the <strong>class</strong> or <strong>field</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#Extension">Extension</a>[]</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Array of extensions - see
+@Extension annotation</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+@Extensions({@Extension(vendorName="MyJDOImpl", key="firstExtension", value="myValue"),
+ @Extension(vendorName="MyJDOImpl", key="secondExtension", value="myValue")})
+public class Person
+{
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="Extension"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__extension_a_id_aextension_a">@Extension<a id="aExtension"></a></h3>
+<div class="paragraph">
+<p>Annotation used to define an extension specific to a particular JDO
+implementation. Is equivalent to the <extension> metadata element.
+Specified on the <strong>class</strong> or <strong>field</strong>.</p>
+</div>
+<table class="tableblock frame-all grid-cols spread">
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribute</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">vendorName</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the JDO vendor</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">key</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Key for the extension</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">value</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Value of the extension</p></td>
+<td class="tableblock halign-left valign-top"></td>
+</tr>
+</tbody>
+</table>
+<div class="literalblock">
+<div class="content">
+<pre>@PersistenceCapable
+@Extension(vendorName="MyJDOImpl", key="RunFast", value="true")
+public class Person
+{
+ ...
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+</div>
+</div>
+</div>
+ </div>
+ </div>
+ </div>
+
+</div>
+
+ <footer style="color:#fff; background-color:#222222; padding: 5px;">
+ <div class="container">
+ <div class="row" style="margin-top:25px">
+ <div class="col-sm" align="center">
+ <a href="https://www.facebook.com/JavaDataObjects" class="externalLink" title="Facebook">Facebook</a>
+ |
+ <a href="https://twitter.com/JavaDataObjects" class="externalLink" title="Twitter">Twitter</a>
+ |
+ <a href="http://wiki.apache.org/jdo" class="externalLink" title="Wiki">Wiki</a>
+ |
+ <a href="http://issues.apache.org/jira/secure/BrowseProject.jspa?id=10630" class="externalLink" title="Issue Tracker">Issue Tracker</a>
+ |
+ <a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
+ |
+ <a href="api31/apidocs/index.html" title="Latest Javadocs">Latest Javadocs</a>
+ </div>
+ </div>
+ <p class="text-center" style="margin-top:16px">© 2005-2020 Apache Software Foundation. All Rights Reserved.</p>
+ </div>
+ </footer>
+
+</body>
</html>
\ No newline at end of file
diff --git a/docs/attach_detach.html b/docs/attach_detach.html
index 9d23539..d5daeec 100644
--- a/docs/attach_detach.html
+++ b/docs/attach_detach.html
@@ -1,626 +1,626 @@
-<!DOCTYPE html>
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
-
- <!-- No caching headers -->
- <meta http-equiv="cache-control" content="no-cache"/>
- <meta http-equiv="pragma" content="no-cache"/>
- <meta http-equiv="expires" content="-1"/>
- <meta name="keywords" content="JDO, Apache, Java, Data, Objects"/>
- <meta name="description" content="Apache JDO - Java Data Objects"/>
-
- <title>JDO Attach/Detach</title>
-
- <link rel="icon" type="image/png" href="https://apache.github.io/db-jdo-site/images/JDO_32x32.png"/>
-
- <!--
- Apache JDO Documentation Template
- ==================================
- This template derived various aspects from Apache Deltaspike template, the Apache ISIS template and the Datanucleus template.
- This template uses
- * Bootstrap v3.3.7 (https://getbootstrap.com/) for navbar.
- * Asciidoctor "foundation" CSS
- * Bootswatch "cosmo" theme for Bootstrap (https://bootswatch.com/cosmo).
- * Bootstrap TOC plugin v0.4.1 (https://afeld.github.io/bootstrap-toc/) for the table of contents.
- * jQuery (necessary for Bootstrap's JavaScript plugins)
- * Font-Awesome for some icons used by Asciidoctor
- NOTE: tried using Font-Awesome CSS hosted locally but then fails to work!
- -->
- <link href="css/bootswatch/3.3.7/bootstrap-cosmo.css" rel="stylesheet"/>
- <link href="css/bootstrap-toc/0.4.1/bootstrap-toc.min.css" rel="stylesheet"/>
-
- <link href="css/asciidoctor/foundation.css" rel="stylesheet"/>
- <link href="css/datanucleus_theme.css" rel="stylesheet"/>
- <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
- <script src="js/bootstrap/3.3.7/bootstrap.min.js"></script>
- <script src="js/bootstrap-toc/0.4.1/bootstrap-toc.min.js"></script>
-
- <!-- Coderay syntax formatter -->
- <style type="text/css">
- /* Stylesheet for CodeRay to match GitHub theme | MIT License | http://foundation.zurb.com */
-/*pre.CodeRay {background-color:#f7f7f8;}*/
-.CodeRay .line-numbers{border-right:1px solid #d8d8d8;padding:0 0.5em 0 .25em}
-.CodeRay span.line-numbers{display:inline-block;margin-right:.5em;color:rgba(0,0,0,.3)}
-.CodeRay .line-numbers strong{color:rgba(0,0,0,.4)}
-table.CodeRay{border-collapse:separate;border-spacing:0;margin-bottom:0;border:0;background:none}
-table.CodeRay td{vertical-align: top;line-height:1.45}
-table.CodeRay td.line-numbers{text-align:right}
-table.CodeRay td.line-numbers>pre{padding:0;color:rgba(0,0,0,.3)}
-table.CodeRay td.code{padding:0 0 0 .5em}
-table.CodeRay td.code>pre{padding:0}
-.CodeRay .debug{color:#fff !important;background:#000080 !important}
-.CodeRay .annotation{color:#007}
-.CodeRay .attribute-name{color:#000080}
-.CodeRay .attribute-value{color:#700}
-.CodeRay .binary{color:#509}
-.CodeRay .comment{color:#998;font-style:italic}
-.CodeRay .char{color:#04d}
-.CodeRay .char .content{color:#04d}
-.CodeRay .char .delimiter{color:#039}
-.CodeRay .class{color:#458;font-weight:bold}
-.CodeRay .complex{color:#a08}
-.CodeRay .constant,.CodeRay .predefined-constant{color:#008080}
-.CodeRay .color{color:#099}
-.CodeRay .class-variable{color:#369}
-.CodeRay .decorator{color:#b0b}
-.CodeRay .definition{color:#099}
-.CodeRay .delimiter{color:#000}
-.CodeRay .doc{color:#970}
-.CodeRay .doctype{color:#34b}
-.CodeRay .doc-string{color:#d42}
-.CodeRay .escape{color:#666}
-.CodeRay .entity{color:#800}
-.CodeRay .error{color:#808}
-.CodeRay .exception{color:inherit}
-.CodeRay .filename{color:#099}
-.CodeRay .function{color:#900;font-weight:bold}
-.CodeRay .global-variable{color:#008080}
-.CodeRay .hex{color:#058}
-.CodeRay .integer,.CodeRay .float{color:#099}
-.CodeRay .include{color:#555}
-.CodeRay .inline{color:#000}
-.CodeRay .inline .inline{background:#ccc}
-.CodeRay .inline .inline .inline{background:#bbb}
-.CodeRay .inline .inline-delimiter{color:#d14}
-.CodeRay .inline-delimiter{color:#d14}
-.CodeRay .important{color:#555;font-weight:bold}
-.CodeRay .interpreted{color:#b2b}
-.CodeRay .instance-variable{color:#008080}
-.CodeRay .label{color:#970}
-.CodeRay .local-variable{color:#963}
-.CodeRay .octal{color:#40e}
-.CodeRay .predefined{color:#369}
-.CodeRay .preprocessor{color:#579}
-.CodeRay .pseudo-class{color:#555}
-.CodeRay .directive{font-weight:bold}
-.CodeRay .type{font-weight:bold}
-.CodeRay .predefined-type{color:inherit}
-.CodeRay .reserved,.CodeRay .keyword {color:#000;font-weight:bold}
-.CodeRay .key{color:#808}
-.CodeRay .key .delimiter{color:#606}
-.CodeRay .key .char{color:#80f}
-.CodeRay .value{color:#088}
-.CodeRay .regexp .delimiter{color:#808}
-.CodeRay .regexp .content{color:#808}
-.CodeRay .regexp .modifier{color:#808}
-.CodeRay .regexp .char{color:#d14}
-.CodeRay .regexp .function{color:#404;font-weight:bold}
-.CodeRay .string{color:#d20}
-.CodeRay .string .string .string{background:#ffd0d0}
-.CodeRay .string .content{color:#d14}
-.CodeRay .string .char{color:#d14}
-.CodeRay .string .delimiter{color:#d14}
-.CodeRay .shell{color:#d14}
-.CodeRay .shell .delimiter{color:#d14}
-.CodeRay .symbol{color:#990073}
-.CodeRay .symbol .content{color:#a60}
-.CodeRay .symbol .delimiter{color:#630}
-.CodeRay .tag{color:#008080}
-.CodeRay .tag-special{color:#d70}
-.CodeRay .variable{color:#036}
-.CodeRay .insert{background:#afa}
-.CodeRay .delete{background:#faa}
-.CodeRay .change{color:#aaf;background:#007}
-.CodeRay .head{color:#f8f;background:#505}
-.CodeRay .insert .insert{color:#080}
-.CodeRay .delete .delete{color:#800}
-.CodeRay .change .change{color:#66f}
-.CodeRay .head .head{color:#f4f}
- </style>
-</head>
-<body data-spy="scroll" data-target="#toc">
-<!-- Navbar -->
-<nav class="navbar navbar-default navbar-static-top">
- <div class="container">
- <div class="navbar-header">
- <!-- Three line menu button for use on mobile screens -->
- <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
- <span class="sr-only">Toggle navigation</span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- </button>
- <!-- 'style' added to align image with navbar. FIX THIS -->
- <a class="navbar-brand" href="https://db.apache.org/jdo/">
- <img style="margin-top: -12px;" alt="Brand" src="images/JDO_44x44.png"/>
- </a>
- <!-- TODO Any way to abstract the version from Maven? -->
- <a class="navbar-brand" href="index.html">Apache JDO</a>
- </div>
- <!-- Navbar that will collapse on mobile screens -->
- <div id="navbar" class="navbar-collapse collapse">
- <ul class="nav navbar-nav">
- <li class="dropdown">
-
- <!-- menu item General -->
-
-
- <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">General<span class="caret"></span></a>
-
- <ul class="dropdown-menu">
- <li><a href="why_jdo.html">Why JDO?</a></li>
- <li><a href="getting-started.html">Getting Started</a></li>
- <li><a href="specifications.html">Specifications</a></li>
- <li><a href="tck.html">TCK</a></li>
- <li><a href="javadoc.html">API Javadoc</a></li>
- <li role="separator" class="divider"></li>
- <li><a href="jdo_v_jpa.html">JDO v JPA</a></li>
- <li><a href="jdo_v_jpa_api.html">JDO v JPA : API</a></li>
- <li><a href="jdo_v_jpa_orm.html">JDO v JPA : ORM</a></li>
- <li role="separator" class="divider"></li>
- <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
- <li><a href="impls.html">Implementations</a></li>
- <li><a href="jdo_3_0_overview.html">JDO 3.0 Overview</a></li>
- <li><a href="references.html">References</a></li>
- <li><a href="glossary.html">Glossary</a></li>
- </ul>
- </li>
-
- <!-- menu item API Usage -->
-
- <li class="dropdown">
-
- <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false" style="background-color:#2385c6">API Usage<span class="caret"></span></a>
-
- <ul class="dropdown-menu">
- <li><a href="jdohelper.html">JDO Helper</a></li>
- <li><a href="pmf.html">PersistenceManagerFactory</a></li>
- <li><a href="pm.html">PersistenceManager</a></li>
- <li><a href="transactions.html">Transactions</a></li>
- <li><a href="attach_detach.html">Attach-Detach</a></li>
- <li><a href="fetchgroups.html">Fetch Groups</a></li>
- <li><a href="state_transition.html">Object States</a></li>
- <li><a href="object_retrieval.html">Object Retrieval</a></li>
- <li><a href="exceptions.html">Exceptions</a></li>
- <li role="separator" class="divider"></li>
- <li><a href="guides-replication.html">Data Replication</a></li>
- </ul>
- </li>
-
- <!-- menu item Types & Metadata -->
-
- <li class="dropdown">
-
- <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Types & Metadata<span class="caret"></span></a>
-
- <ul class="dropdown-menu">
- <li><a href="class_types.html">Types of Classes</a></li>
- <li><a href="field_types.html">Types of Fields</a></li>
- <li role="separator" class="divider"></li>
- <!-- <li class="dropdown-header">Metadata</li> -->
- <li><a href="metadata.html">MetaData</a></li>
- <li><a href="annotations.html">Annotations</a></li>
- <li><a href="jdo_dtd.html">jdo DTD/XSD</a></li>
- <li><a href="orm_dtd.html">orm DTD/XSD</a></li>
- <li><a href="jdoquery_dtd.html">jdoquery DTD/XSD</a></li>
- <li><a href="jdoconfig_dtd.html">jdoconfig DTD/XSD</a></li>
- <li role="separator" class="divider"></li>
- <li><a href="enhancement.html">Bytecode Enhancement</a></li>
- </ul>
- </li>
-
- <!-- menu item Query -->
-
- <li class="dropdown">
-
- <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Query<span class="caret"></span></a>
-
- <ul class="dropdown-menu">
- <li><a href="jdoql.html">JDOQL</a></li>
- <li><a href="jdoql_result.html">Result</a></li>
- <li><a href="jdoql_methods.html">Methods</a></li>
- <li><a href="jdoql_quickref.pdf">Quick Ref PDF</a></li>
- <li role="separator" class="divider"></li>
- <li><a href="extents.html">Extents</a></li>
- </ul>
- </li>
-
- <!-- menu item Community -->
-
- <li class="dropdown">
-
- <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Community<span class="caret"></span></a>
-
- <ul class="dropdown-menu">
- <li><a href="get-involved.html">Get Involved</a></li>
- <li><a href="team-list.html">Project Team</a></li>
- <li><a href="mail-lists.html">Mailing Lists</a></li>
- <li><a href="faq.html">FAQ</a></li>
- </ul>
- </li>
-
- <!-- menu item Development -->
-
- <li class="dropdown">
-
- <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Development<span class="caret"></span></a>
-
- <ul class="dropdown-menu">
- <li><a href="roadmap.html">RoadMap / TODO</a></li>
- <li><a href="downloads.html">Downloads</a></li>
- <li><a href="source-code.html">Source Code</a></li>
- <li><a href="http://cwiki.apache.org/GMOxDEV/Coding+standards">Coding Standards</a></li>
- <li><a href="issuetracking.html">Issue Tracking</a></li>
- </ul>
- </li>
- </ul>
- <!-- 'style' added to fix height of input box. FIX THIS -->
- <form class="navbar-form navbar-left" role="search" id="search-form" action="https://www.google.com/search" method="get" style="padding: 1px 15px;">
- <div class="form-group">
- <input name="sitesearch" value="db.apache.org/jdo" type="hidden">
- <input name="q" type="text" class="form-control" placeholder="Search" style="margin-top: 7px; padding: 1px; border-radius: 5px; height: 30px; vertical-align: middle;">
- </div>
- </form>
- </div>
- </div>
-</nav>
-<div class="container">
-
- <div class="row-fluid">
- <div class="col-sm-9">
-<!-- <div class="page-title">
- <h3>JDO Attach/Detach<a id="JDO_AttachDetach"></a></h3>
- </div>
--->
- <div id="doc-content">
- <div class="sect1">
-<h2 id="index">JDO Attach/Detach<a id="JDO_AttachDetach"></a></h2>
-<div class="sectionbody">
-<div class="paragraph">
-<p>JDO provides an interface to the persistence of objects. JDO 1.0 doesn’t
-provide a way of taking an object that was just persisted and just work
-on it and update the persisted object later. The user has to copy the
-fields manually and copy them back to the persisted object later. JDO
-2.0 introduces a new way of handling this situation, by <strong>detaching</strong> an
-object from the persistence graph, allowing it to be worked on in the
-users application. It can then be <strong>attached</strong> to the persistence graph
-later. Please refer to <a href="state_transition.html">Object Lifecycle</a> for
-where this fits in. The first thing to do to use a class with this
-facility is to tag it as "detachable". This is done by adding the
-attribute</p>
-</div>
-<div class="literalblock">
-<div class="content">
-<pre><class name="MyClass" detachable="true"></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>This acts as an instruction to the <a href="enhancement.html">enhancement
-process</a> to add methods necessary to utilise the attach/detach process.</p>
-</div>
-<div class="paragraph">
-<p>The following code fragment highlights how to use the attach/detach
-mechanism</p>
-</div>
-<div class="literalblock">
-<div class="content">
-<pre>Product working_product=null;
-Transaction tx=pm.currentTransaction();
-try
-{
- tx.begin();
-
- Product prod=new Product(name,description,price);
- pm.makePersistent(prod);
-
- // Detach the product for use
- working_product = (Product)pm.detachCopy(prod);
-
- tx.commit();
-}
-catch (Exception e)
-{
- // Handle the exception
-}
-finally
-{
- if (tx.isActive())
- {
- tx.rollback();
- }
-}
-
-// Work on the detached object in our application
-working_product.setPrice(new_price);
-
-...
-
-// Reattach the updated object
-tx = pm.currentTransaction();
-try
-{
- tx.begin();
-
- Product attached_product = pm.makePersistent(working_product);
-
- tx.commit();
-}
-catch (Exception e)
-{
- // Handle the exception
-}
-finally
-{
- if (tx.isActive())
- {
- tx.rollback();
- }
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p>So we now don’t need to do any manual copying of object fields just
-using a simple call to detach the object, and then attach it again
-later. Here are a few things to note with <em>attach/detach</em> :</p>
-</div>
-<div class="ulist">
-<ul>
-<li>
-<p>Calling <em>detachCopy</em> on an object that is not detachable will return a
-<strong>transient</strong> instance that is a COPY of the original, so use the COPY
-thereafter.</p>
-</li>
-<li>
-<p>Calling <em>detachCopy</em> on an object that is detachable will return a
-<strong>detached</strong> instance that is a COPY of the original, so use this COPY
-thereafter</p>
-</li>
-<li>
-<p>A <em>detached</em> object retain the id of its datastore entity. Detached
-objects should be used where you want to update the objects and attach
-them later (updating the associated object in the datastore. If you want
-to create copies of the objects in the datastore with their own
-identities you should use <em>makeTransient</em> instead of <em>detachCopy</em>.</p>
-</li>
-<li>
-<p>Calling <em>detachCopy</em> will detach all fields of that object that are in
-the current <a href="fetchgroups.html">Fetch Group</a> for that class for that
-<em>PersistenceManager</em>.</p>
-</li>
-<li>
-<p>By default the fields of the object that will be detached are those in
-the <em>Default Fetch Group</em>.</p>
-</li>
-<li>
-<p>You should choose your <a href="fetchgroups.html">Fetch Group</a> carefully,
-bearing in mind which object(s) you want to access whilst detached.
-Detaching a relation field will detach the related object as well.</p>
-</li>
-<li>
-<p>If you don’t detach a field of an object, you <span class="underline">cannot</span>
-access the value for that field while the object is detached.</p>
-</li>
-<li>
-<p>If you don’t detach a field of an object, you <span class="underline">can</span> update
-the value for that field while detached, and thereafter you can access
-the value for that field.</p>
-</li>
-<li>
-<p>Calling <em>makePersistent</em> will return an (attached) copy of the
-detached object. It will attach all fields that were originally
-detached, and will also attach any other fields that were modified
-whilst detached.</p>
-</li>
-</ul>
-</div>
-<div class="paragraph">
-<p><a id="detach_all_on_commit"></a></p>
-</div>
-<div class="sect2">
-<h3 id="_detach_all_on_commit_a_id_detach_all_on_commit_a">Detach All On Commit<a id="Detach_All_On_Commit"></a></h3>
-<div class="paragraph">
-<p>JDO2 also provides a mechanism whereby all objects that were enlisted in
-a transaction are automatically detached when the transaction is
-committed. You can enable this in one of 3 ways. If you want to use this
-mode globally for all <em>PersistenceManager</em>s (PMs) from a
-<em>PersistenceManagerFactory</em> (PMF) you could either set the PMF property
-"datanucleus.DetachAllOnCommit", or you could create your PMF and call
-the PMF method <strong>setDetachAllOnCommit(true)</strong>. If instead you wanted to
-use this mode only for a particular PM, or only for a particular
-transaction for a particular PM, then you can call the PM method
-<strong>setDetachAllOnCommit(true)</strong> before the commit of the transaction, and
-it will apply for all transaction commits thereafter, until turned off
-(<strong>setDetachAllOnCommit(false)</strong>. Here’s an example</p>
-</div>
-<div class="literalblock">
-<div class="content">
-<pre>// Create a PMF
-...
-
-// Create an object
-MyObject my = new MyObject();
-
-PersistenceManager pm = pmf.getPersistenceManager();
-Transaction tx = pm.currentTransaction();
-try
-{
- tx.begin();
-
- // We want our object to be detached when it's been persisted
- pm.setDetachAllOnCommit(true);
-
- // Persist the object that we created earlier
- pm.makePersistent(my);
-
- tx.commit();
- // The object "my" is now in detached state and can be used further
-}
-finally
-{
- if (tx.isActive)
- {
- tx.rollback();
- }
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-<div class="paragraph">
-<p><a id="copy_on_attach"></a></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="_copy_on_attach_a_id_copy_on_attach_a">Copy On Attach<a id="Copy_On_Attach"></a></h3>
-<div class="paragraph">
-<p>By default when you are attaching a detached object it will return an
-attached copy of the detached object. JDO2.1 provides a new feature that
-allows this attachment to just migrate the existing detached object into
-attached state.</p>
-</div>
-<div class="paragraph">
-<p>You enable this by setting the <em>PersistenceManagerFactory</em> (PMF)
-property <strong>datanucleus.CopyOnAttach</strong> to false. Alternatively you can use
-the methods <em>PersistenceManagerFactory.setCopyOnAttach(boolean flag)</em> or
-<em>PersistenceManager.setCopyOnAttach(boolean flag)</em>. If we return to the
-example at the start of this page, this now becomes</p>
-</div>
-<div class="literalblock">
-<div class="content">
-<pre>// Reattach the updated object
-pm.setCopyOnAttach(false);
-tx = pm.currentTransaction();
-try
-{
- tx.begin();
-
- // working product is currently in detached state
-
- pm.makePersistent(working_product);
- // working_product is now in persistent (attached) state
-
- tx.commit();
-}
-catch (Exception e)
-{
- // Handle the exception
-}
-finally
-{
- if (tx.isActive())
- {
- tx.rollback();
- }
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p>Please note that if you try to attach two detached objects representing
-the same underlying persistent object within the same transaction (i.e a
-persistent object with the same identity already exists in the level 1
-cache), then a JDOUserException will be thrown.</p>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="_serialization_of_detachable_classes_a_id_serialization_of_detachable_classes_a">Serialization of Detachable classes<a id="Serialization_of_Detachable_classes"></a></h3>
-<div class="paragraph">
-<p>During enhancement of Detachable classes, a field called
-<em>jdoDetachedState</em> is added to the class definition. This field allows
-reading and changing tracking of detached objects while they are not
-managed by a PersistenceManager.</p>
-</div>
-<div class="paragraph">
-<p>When serialization occurs on a Detachable object, the <em>jdoDetachedState</em>
-field is written to the serialized object stream. On deserialize, this
-field is written back to the new deserialized instance. This process
-occurs transparently to the application. However, if deserialization
-occurs with an un-enhanced version of the class, the detached state is
-lost.</p>
-</div>
-<div class="paragraph">
-<p>Serialization and deserialization of Detachable classes and un-enhanced
-versions of the same class is only possible if the field
-<em>serialVersionUID</em> is added. It’s recommended during development of the
-class, to define the <em>serialVersionUID</em> and make the class to implement
-the <em>java.io.Serializable</em> interface, as the following example:</p>
-</div>
-<div class="literalblock">
-<div class="content">
-<pre>class MyClass implements java.io.Serializable
-{
- private static final long serialVersionUID = 2765740961462495537L; // any random value here
-
- //.... other fields
-}</pre>
-</div>
-</div>
-<div class="paragraph">
-<p><br></p>
-</div>
-</div>
-</div>
-</div>
- </div>
- </div>
- <div class="col-sm-3">
- <nav id="toc" data-spy="affix" data-toggle="toc"></nav>
- </div>
- </div>
-
-</div>
-
- <footer style="color:#fff; background-color:#222222; padding: 5px;">
- <div class="container">
- <div class="row" style="margin-top:25px">
- <div class="col-sm" align="center">
- <a href="https://www.facebook.com/JavaDataObjects" class="externalLink" title="Facebook">Facebook</a>
- |
- <a href="https://twitter.com/JavaDataObjects" class="externalLink" title="Twitter">Twitter</a>
- |
- <a href="http://wiki.apache.org/jdo" class="externalLink" title="Wiki">Wiki</a>
- |
- <a href="http://issues.apache.org/jira/secure/BrowseProject.jspa?id=10630" class="externalLink" title="Issue Tracker">Issue Tracker</a>
- |
- <a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
- |
- <a href="api31/apidocs/index.html" title="Latest Javadocs">Latest Javadocs</a>
- </div>
- </div>
- <p class="text-center" style="margin-top:16px">© 2005-2020 Apache Software Foundation. All Rights Reserved.</p>
- </div>
- </footer>
-
-</body>
+<!DOCTYPE html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <!-- No caching headers -->
+ <meta http-equiv="cache-control" content="no-cache"/>
+ <meta http-equiv="pragma" content="no-cache"/>
+ <meta http-equiv="expires" content="-1"/>
+ <meta name="keywords" content="JDO, Apache, Java, Data, Objects"/>
+ <meta name="description" content="Apache JDO - Java Data Objects"/>
+
+ <title>JDO Attach/Detach</title>
+
+ <link rel="icon" type="image/png" href="https://apache.github.io/db-jdo-site/images/JDO_32x32.png"/>
+
+ <!--
+ Apache JDO Documentation Template
+ ==================================
+ This template derived various aspects from Apache Deltaspike template, the Apache ISIS template and the Datanucleus template.
+ This template uses
+ * Bootstrap v3.3.7 (https://getbootstrap.com/) for navbar.
+ * Asciidoctor "foundation" CSS
+ * Bootswatch "cosmo" theme for Bootstrap (https://bootswatch.com/cosmo).
+ * Bootstrap TOC plugin v0.4.1 (https://afeld.github.io/bootstrap-toc/) for the table of contents.
+ * jQuery (necessary for Bootstrap's JavaScript plugins)
+ * Font-Awesome for some icons used by Asciidoctor
+ NOTE: tried using Font-Awesome CSS hosted locally but then fails to work!
+ -->
+ <link href="css/bootswatch/3.3.7/bootstrap-cosmo.css" rel="stylesheet"/>
+ <link href="css/bootstrap-toc/0.4.1/bootstrap-toc.min.css" rel="stylesheet"/>
+
+ <link href="css/asciidoctor/foundation.css" rel="stylesheet"/>
+ <link href="css/datanucleus_theme.css" rel="stylesheet"/>
+ <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
+ <script src="js/bootstrap/3.3.7/bootstrap.min.js"></script>
+ <script src="js/bootstrap-toc/0.4.1/bootstrap-toc.min.js"></script>
+
+ <!-- Coderay syntax formatter -->
+ <style type="text/css">
+ /* Stylesheet for CodeRay to match GitHub theme | MIT License | http://foundation.zurb.com */
+/*pre.CodeRay {background-color:#f7f7f8;}*/
+.CodeRay .line-numbers{border-right:1px solid #d8d8d8;padding:0 0.5em 0 .25em}
+.CodeRay span.line-numbers{display:inline-block;margin-right:.5em;color:rgba(0,0,0,.3)}
+.CodeRay .line-numbers strong{color:rgba(0,0,0,.4)}
+table.CodeRay{border-collapse:separate;border-spacing:0;margin-bottom:0;border:0;background:none}
+table.CodeRay td{vertical-align: top;line-height:1.45}
+table.CodeRay td.line-numbers{text-align:right}
+table.CodeRay td.line-numbers>pre{padding:0;color:rgba(0,0,0,.3)}
+table.CodeRay td.code{padding:0 0 0 .5em}
+table.CodeRay td.code>pre{padding:0}
+.CodeRay .debug{color:#fff !important;background:#000080 !important}
+.CodeRay .annotation{color:#007}
+.CodeRay .attribute-name{color:#000080}
+.CodeRay .attribute-value{color:#700}
+.CodeRay .binary{color:#509}
+.CodeRay .comment{color:#998;font-style:italic}
+.CodeRay .char{color:#04d}
+.CodeRay .char .content{color:#04d}
+.CodeRay .char .delimiter{color:#039}
+.CodeRay .class{color:#458;font-weight:bold}
+.CodeRay .complex{color:#a08}
+.CodeRay .constant,.CodeRay .predefined-constant{color:#008080}
+.CodeRay .color{color:#099}
+.CodeRay .class-variable{color:#369}
+.CodeRay .decorator{color:#b0b}
+.CodeRay .definition{color:#099}
+.CodeRay .delimiter{color:#000}
+.CodeRay .doc{color:#970}
+.CodeRay .doctype{color:#34b}
+.CodeRay .doc-string{color:#d42}
+.CodeRay .escape{color:#666}
+.CodeRay .entity{color:#800}
+.CodeRay .error{color:#808}
+.CodeRay .exception{color:inherit}
+.CodeRay .filename{color:#099}
+.CodeRay .function{color:#900;font-weight:bold}
+.CodeRay .global-variable{color:#008080}
+.CodeRay .hex{color:#058}
+.CodeRay .integer,.CodeRay .float{color:#099}
+.CodeRay .include{color:#555}
+.CodeRay .inline{color:#000}
+.CodeRay .inline .inline{background:#ccc}
+.CodeRay .inline .inline .inline{background:#bbb}
+.CodeRay .inline .inline-delimiter{color:#d14}
+.CodeRay .inline-delimiter{color:#d14}
+.CodeRay .important{color:#555;font-weight:bold}
+.CodeRay .interpreted{color:#b2b}
+.CodeRay .instance-variable{color:#008080}
+.CodeRay .label{color:#970}
+.CodeRay .local-variable{color:#963}
+.CodeRay .octal{color:#40e}
+.CodeRay .predefined{color:#369}
+.CodeRay .preprocessor{color:#579}
+.CodeRay .pseudo-class{color:#555}
+.CodeRay .directive{font-weight:bold}
+.CodeRay .type{font-weight:bold}
+.CodeRay .predefined-type{color:inherit}
+.CodeRay .reserved,.CodeRay .keyword {color:#000;font-weight:bold}
+.CodeRay .key{color:#808}
+.CodeRay .key .delimiter{color:#606}
+.CodeRay .key .char{color:#80f}
+.CodeRay .value{color:#088}
+.CodeRay .regexp .delimiter{color:#808}
+.CodeRay .regexp .content{color:#808}
+.CodeRay .regexp .modifier{color:#808}
+.CodeRay .regexp .char{color:#d14}
+.CodeRay .regexp .function{color:#404;font-weight:bold}
+.CodeRay .string{color:#d20}
+.CodeRay .string .string .string{background:#ffd0d0}
+.CodeRay .string .content{color:#d14}
+.CodeRay .string .char{color:#d14}
+.CodeRay .string .delimiter{color:#d14}
+.CodeRay .shell{color:#d14}
+.CodeRay .shell .delimiter{color:#d14}
+.CodeRay .symbol{color:#990073}
+.CodeRay .symbol .content{color:#a60}
+.CodeRay .symbol .delimiter{color:#630}
+.CodeRay .tag{color:#008080}
+.CodeRay .tag-special{color:#d70}
+.CodeRay .variable{color:#036}
+.CodeRay .insert{background:#afa}
+.CodeRay .delete{background:#faa}
+.CodeRay .change{color:#aaf;background:#007}
+.CodeRay .head{color:#f8f;background:#505}
+.CodeRay .insert .insert{color:#080}
+.CodeRay .delete .delete{color:#800}
+.CodeRay .change .change{color:#66f}
+.CodeRay .head .head{color:#f4f}
+ </style>
+</head>
+<body data-spy="scroll" data-target="#toc">
+<!-- Navbar -->
+<nav class="navbar navbar-default navbar-static-top">
+ <div class="container">
+ <div class="navbar-header">
+ <!-- Three line menu button for use on mobile screens -->
+ <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <!-- 'style' added to align image with navbar. FIX THIS -->
+ <a class="navbar-brand" href="https://db.apache.org/jdo/">
+ <img style="margin-top: -12px;" alt="Brand" src="images/JDO_44x44.png"/>
+ </a>
+ <!-- TODO Any way to abstract the version from Maven? -->
+ <a class="navbar-brand" href="index.html">Apache JDO</a>
+ </div>
+ <!-- Navbar that will collapse on mobile screens -->
+ <div id="navbar" class="navbar-collapse collapse">
+ <ul class="nav navbar-nav">
+ <li class="dropdown">
+
+ <!-- menu item General -->
+
+
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">General<span class="caret"></span></a>
+
+ <ul class="dropdown-menu">
+ <li><a href="why_jdo.html">Why JDO?</a></li>
+ <li><a href="getting-started.html">Getting Started</a></li>
+ <li><a href="specifications.html">Specifications</a></li>
+ <li><a href="tck.html">TCK</a></li>
+ <li><a href="javadoc.html">API Javadoc</a></li>
+ <li role="separator" class="divider"></li>
+ <li><a href="jdo_v_jpa.html">JDO v JPA</a></li>
+ <li><a href="jdo_v_jpa_api.html">JDO v JPA : API</a></li>
+ <li><a href="jdo_v_jpa_orm.html">JDO v JPA : ORM</a></li>
+ <li role="separator" class="divider"></li>
+ <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+ <li><a href="impls.html">Implementations</a></li>
+ <li><a href="jdo_3_0_overview.html">JDO 3.0 Overview</a></li>
+ <li><a href="references.html">References</a></li>
+ <li><a href="glossary.html">Glossary</a></li>
+ </ul>
+ </li>
+
+ <!-- menu item API Usage -->
+
+ <li class="dropdown">
+
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false" style="background-color:#2385c6">API Usage<span class="caret"></span></a>
+
+ <ul class="dropdown-menu">
+ <li><a href="jdohelper.html">JDO Helper</a></li>
+ <li><a href="pmf.html">PersistenceManagerFactory</a></li>
+ <li><a href="pm.html">PersistenceManager</a></li>
+ <li><a href="transactions.html">Transactions</a></li>
+ <li><a href="attach_detach.html">Attach-Detach</a></li>
+ <li><a href="fetchgroups.html">Fetch Groups</a></li>
+ <li><a href="state_transition.html">Object States</a></li>
+ <li><a href="object_retrieval.html">Object Retrieval</a></li>
+ <li><a href="exceptions.html">Exceptions</a></li>
+ <li role="separator" class="divider"></li>
+ <li><a href="guides-replication.html">Data Replication</a></li>
+ </ul>
+ </li>
+
+ <!-- menu item Types & Metadata -->
+
+ <li class="dropdown">
+
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Types & Metadata<span class="caret"></span></a>
+
+ <ul class="dropdown-menu">
+ <li><a href="class_types.html">Types of Classes</a></li>
+ <li><a href="field_types.html">Types of Fields</a></li>
+ <li role="separator" class="divider"></li>
+ <!-- <li class="dropdown-header">Metadata</li> -->
+ <li><a href="metadata.html">MetaData</a></li>
+ <li><a href="annotations.html">Annotations</a></li>
+ <li><a href="jdo_dtd.html">jdo DTD/XSD</a></li>
+ <li><a href="orm_dtd.html">orm DTD/XSD</a></li>
+ <li><a href="jdoquery_dtd.html">jdoquery DTD/XSD</a></li>
+ <li><a href="jdoconfig_dtd.html">jdoconfig DTD/XSD</a></li>
+ <li role="separator" class="divider"></li>
+ <li><a href="enhancement.html">Bytecode Enhancement</a></li>
+ </ul>
+ </li>
+
+ <!-- menu item Query -->
+
+ <li class="dropdown">
+
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Query<span class="caret"></span></a>
+
+ <ul class="dropdown-menu">
+ <li><a href="jdoql.html">JDOQL</a></li>
+ <li><a href="jdoql_result.html">Result</a></li>
+ <li><a href="jdoql_methods.html">Methods</a></li>
+ <li><a href="jdoql_quickref.pdf">Quick Ref PDF</a></li>
+ <li role="separator" class="divider"></li>
+ <li><a href="extents.html">Extents</a></li>
+ </ul>
+ </li>
+
+ <!-- menu item Community -->
+
+ <li class="dropdown">
+
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Community<span class="caret"></span></a>
+
+ <ul class="dropdown-menu">
+ <li><a href="get-involved.html">Get Involved</a></li>
+ <li><a href="team-list.html">Project Team</a></li>
+ <li><a href="mail-lists.html">Mailing Lists</a></li>
+ <li><a href="faq.html">FAQ</a></li>
+ </ul>
+ </li>
+
+ <!-- menu item Development -->
+
+ <li class="dropdown">
+
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Development<span class="caret"></span></a>
+
+ <ul class="dropdown-menu">
+ <li><a href="roadmap.html">RoadMap / TODO</a></li>
+ <li><a href="downloads.html">Downloads</a></li>
+ <li><a href="source-code.html">Source Code</a></li>
+ <li><a href="http://cwiki.apache.org/GMOxDEV/Coding+standards">Coding Standards</a></li>
+ <li><a href="issuetracking.html">Issue Tracking</a></li>
+ </ul>
+ </li>
+ </ul>
+ <!-- 'style' added to fix height of input box. FIX THIS -->
+ <form class="navbar-form navbar-left" role="search" id="search-form" action="https://www.google.com/search" method="get" style="padding: 1px 15px;">
+ <div class="form-group">
+ <input name="sitesearch" value="db.apache.org/jdo" type="hidden">
+ <input name="q" type="text" class="form-control" placeholder="Search" style="margin-top: 7px; padding: 1px; border-radius: 5px; height: 30px; vertical-align: middle;">
+ </div>
+ </form>
+ </div>
+ </div>
+</nav>
+<div class="container">
+
+ <div class="row-fluid">
+ <div class="col-sm-9">
+<!-- <div class="page-title">
+ <h3>JDO Attach/Detach<a id="JDO_AttachDetach"></a></h3>
+ </div>
+-->
+ <div id="doc-content">
+ <div class="sect1">
+<h2 id="index">JDO Attach/Detach<a id="JDO_AttachDetach"></a></h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>JDO provides an interface to the persistence of objects. JDO 1.0 doesn’t
+provide a way of taking an object that was just persisted and just work
+on it and update the persisted object later. The user has to copy the
+fields manually and copy them back to the persisted object later. JDO
+2.0 introduces a new way of handling this situation, by <strong>detaching</strong> an
+object from the persistence graph, allowing it to be worked on in the
+users application. It can then be <strong>attached</strong> to the persistence graph
+later. Please refer to <a href="state_transition.html">Object Lifecycle</a> for
+where this fits in. The first thing to do to use a class with this
+facility is to tag it as "detachable". This is done by adding the
+attribute</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre><class name="MyClass" detachable="true"></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This acts as an instruction to the <a href="enhancement.html">enhancement
+process</a> to add methods necessary to utilise the attach/detach process.</p>
+</div>
+<div class="paragraph">
+<p>The following code fragment highlights how to use the attach/detach
+mechanism</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>Product working_product=null;
+Transaction tx=pm.currentTransaction();
+try
+{
+ tx.begin();
+
+ Product prod=new Product(name,description,price);
+ pm.makePersistent(prod);
+
+ // Detach the product for use
+ working_product = (Product)pm.detachCopy(prod);
+
+ tx.commit();
+}
+catch (Exception e)
+{
+ // Handle the exception
+}
+finally
+{
+ if (tx.isActive())
+ {
+ tx.rollback();
+ }
+}
+
+// Work on the detached object in our application
+working_product.setPrice(new_price);
+
+...
+
+// Reattach the updated object
+tx = pm.currentTransaction();
+try
+{
+ tx.begin();
+
+ Product attached_product = pm.makePersistent(working_product);
+
+ tx.commit();
+}
+catch (Exception e)
+{
+ // Handle the exception
+}
+finally
+{
+ if (tx.isActive())
+ {
+ tx.rollback();
+ }
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>So we now don’t need to do any manual copying of object fields just
+using a simple call to detach the object, and then attach it again
+later. Here are a few things to note with <em>attach/detach</em> :</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Calling <em>detachCopy</em> on an object that is not detachable will return a
+<strong>transient</strong> instance that is a COPY of the original, so use the COPY
+thereafter.</p>
+</li>
+<li>
+<p>Calling <em>detachCopy</em> on an object that is detachable will return a
+<strong>detached</strong> instance that is a COPY of the original, so use this COPY
+thereafter</p>
+</li>
+<li>
+<p>A <em>detached</em> object retain the id of its datastore entity. Detached
+objects should be used where you want to update the objects and attach
+them later (updating the associated object in the datastore. If you want
+to create copies of the objects in the datastore with their own
+identities you should use <em>makeTransient</em> instead of <em>detachCopy</em>.</p>
+</li>
+<li>
+<p>Calling <em>detachCopy</em> will detach all fields of that object that are in
+the current <a href="fetchgroups.html">Fetch Group</a> for that class for that
+<em>PersistenceManager</em>.</p>
+</li>
+<li>
+<p>By default the fields of the object that will be detached are those in
+the <em>Default Fetch Group</em>.</p>
+</li>
+<li>
+<p>You should choose your <a href="fetchgroups.html">Fetch Group</a> carefully,
+bearing in mind which object(s) you want to access whilst detached.
+Detaching a relation field will detach the related object as well.</p>
+</li>
+<li>
+<p>If you don’t detach a field of an object, you <span class="underline">cannot</span>
+access the value for that field while the object is detached.</p>
+</li>
+<li>
+<p>If you don’t detach a field of an object, you <span class="underline">can</span> update
+the value for that field while detached, and thereafter you can access
+the value for that field.</p>
+</li>
+<li>
+<p>Calling <em>makePersistent</em> will return an (attached) copy of the
+detached object. It will attach all fields that were originally
+detached, and will also attach any other fields that were modified
+whilst detached.</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p><a id="detach_all_on_commit"></a></p>
+</div>
+<div class="sect2">
+<h3 id="_detach_all_on_commit_a_id_detach_all_on_commit_a">Detach All On Commit<a id="Detach_All_On_Commit"></a></h3>
+<div class="paragraph">
+<p>JDO2 also provides a mechanism whereby all objects that were enlisted in
+a transaction are automatically detached when the transaction is
+committed. You can enable this in one of 3 ways. If you want to use this
+mode globally for all <em>PersistenceManager</em>s (PMs) from a
+<em>PersistenceManagerFactory</em> (PMF) you could either set the PMF property
+"datanucleus.DetachAllOnCommit", or you could create your PMF and call
+the PMF method <strong>setDetachAllOnCommit(true)</strong>. If instead you wanted to
+use this mode only for a particular PM, or only for a particular
+transaction for a particular PM, then you can call the PM method
+<strong>setDetachAllOnCommit(true)</strong> before the commit of the transaction, and
+it will apply for all transaction commits thereafter, until turned off
+(<strong>setDetachAllOnCommit(false)</strong>. Here’s an example</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>// Create a PMF
+...
+
+// Create an object
+MyObject my = new MyObject();
+
+PersistenceManager pm = pmf.getPersistenceManager();
+Transaction tx = pm.currentTransaction();
+try
+{
+ tx.begin();
+
+ // We want our object to be detached when it's been persisted
+ pm.setDetachAllOnCommit(true);
+
+ // Persist the object that we created earlier
+ pm.makePersistent(my);
+
+ tx.commit();
+ // The object "my" is now in detached state and can be used further
+}
+finally
+{
+ if (tx.isActive)
+ {
+ tx.rollback();
+ }
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+<div class="paragraph">
+<p><a id="copy_on_attach"></a></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_copy_on_attach_a_id_copy_on_attach_a">Copy On Attach<a id="Copy_On_Attach"></a></h3>
+<div class="paragraph">
+<p>By default when you are attaching a detached object it will return an
+attached copy of the detached object. JDO2.1 provides a new feature that
+allows this attachment to just migrate the existing detached object into
+attached state.</p>
+</div>
+<div class="paragraph">
+<p>You enable this by setting the <em>PersistenceManagerFactory</em> (PMF)
+property <strong>datanucleus.CopyOnAttach</strong> to false. Alternatively you can use
+the methods <em>PersistenceManagerFactory.setCopyOnAttach(boolean flag)</em> or
+<em>PersistenceManager.setCopyOnAttach(boolean flag)</em>. If we return to the
+example at the start of this page, this now becomes</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>// Reattach the updated object
+pm.setCopyOnAttach(false);
+tx = pm.currentTransaction();
+try
+{
+ tx.begin();
+
+ // working product is currently in detached state
+
+ pm.makePersistent(working_product);
+ // working_product is now in persistent (attached) state
+
+ tx.commit();
+}
+catch (Exception e)
+{
+ // Handle the exception
+}
+finally
+{
+ if (tx.isActive())
+ {
+ tx.rollback();
+ }
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Please note that if you try to attach two detached objects representing
+the same underlying persistent object within the same transaction (i.e a
+persistent object with the same identity already exists in the level 1
+cache), then a JDOUserException will be thrown.</p>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_serialization_of_detachable_classes_a_id_serialization_of_detachable_classes_a">Serialization of Detachable classes<a id="Serialization_of_Detachable_classes"></a></h3>
+<div class="paragraph">
+<p>During enhancement of Detachable classes, a field called
+<em>jdoDetachedState</em> is added to the class definition. This field allows
+reading and changing tracking of detached objects while they are not
+managed by a PersistenceManager.</p>
+</div>
+<div class="paragraph">
+<p>When serialization occurs on a Detachable object, the <em>jdoDetachedState</em>
+field is written to the serialized object stream. On deserialize, this
+field is written back to the new deserialized instance. This process
+occurs transparently to the application. However, if deserialization
+occurs with an un-enhanced version of the class, the detached state is
+lost.</p>
+</div>
+<div class="paragraph">
+<p>Serialization and deserialization of Detachable classes and un-enhanced
+versions of the same class is only possible if the field
+<em>serialVersionUID</em> is added. It’s recommended during development of the
+class, to define the <em>serialVersionUID</em> and make the class to implement
+the <em>java.io.Serializable</em> interface, as the following example:</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>class MyClass implements java.io.Serializable
+{
+ private static final long serialVersionUID = 2765740961462495537L; // any random value here
+
+ //.... other fields
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p><br></p>
+</div>
+</div>
+</div>
+</div>
+ </div>
+ </div>
+ <div class="col-sm-3">
+ <nav id="toc" data-spy="affix" data-toggle="toc"></nav>
+ </div>
+ </div>
+
+</div>
+
+ <footer style="color:#fff; background-color:#222222; padding: 5px;">
+ <div class="container">
+ <div class="row" style="margin-top:25px">
+ <div class="col-sm" align="center">
+ <a href="https://www.facebook.com/JavaDataObjects" class="externalLink" title="Facebook">Facebook</a>
+ |
+ <a href="https://twitter.com/JavaDataObjects" class="externalLink" title="Twitter">Twitter</a>
+ |
+ <a href="http://wiki.apache.org/jdo" class="externalLink" title="Wiki">Wiki</a>
+ |
+ <a href="http://issues.apache.org/jira/secure/BrowseProject.jspa?id=10630" class="externalLink" title="Issue Tracker">Issue Tracker</a>
+ |
+ <a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
+ |
+ <a href="api31/apidocs/index.html" title="Latest Javadocs">Latest Javadocs</a>
+ </div>
+ </div>
+ <p class="text-center" style="margin-top:16px">© 2005-2020 Apache Software Foundation. All Rights Reserved.</p>
+ </div>
+ </footer>
+
+</body>
</html>
\ No newline at end of file
diff --git a/docs/class_types.html b/docs/class_types.html
index 8f039cf..359917c 100644
--- a/docs/class_types.html
+++ b/docs/class_types.html
@@ -1,422 +1,422 @@
-<!DOCTYPE html>
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
-
- <!-- No caching headers -->
- <meta http-equiv="cache-control" content="no-cache"/>
- <meta http-equiv="pragma" content="no-cache"/>
- <meta http-equiv="expires" content="-1"/>
- <meta name="keywords" content="JDO, Apache, Java, Data, Objects"/>
- <meta name="description" content="Apache JDO - Java Data Objects"/>
-
- <title>JDO Class Types</title>
-
- <link rel="icon" type="image/png" href="https://apache.github.io/db-jdo-site/images/JDO_32x32.png"/>
-
- <!--
- Apache JDO Documentation Template
- ==================================
- This template derived various aspects from Apache Deltaspike template, the Apache ISIS template and the Datanucleus template.
- This template uses
- * Bootstrap v3.3.7 (https://getbootstrap.com/) for navbar.
- * Asciidoctor "foundation" CSS
- * Bootswatch "cosmo" theme for Bootstrap (https://bootswatch.com/cosmo).
- * Bootstrap TOC plugin v0.4.1 (https://afeld.github.io/bootstrap-toc/) for the table of contents.
- * jQuery (necessary for Bootstrap's JavaScript plugins)
- * Font-Awesome for some icons used by Asciidoctor
- NOTE: tried using Font-Awesome CSS hosted locally but then fails to work!
- -->
- <link href="css/bootswatch/3.3.7/bootstrap-cosmo.css" rel="stylesheet"/>
- <link href="css/bootstrap-toc/0.4.1/bootstrap-toc.min.css" rel="stylesheet"/>
-
- <link href="css/asciidoctor/foundation.css" rel="stylesheet"/>
- <link href="css/datanucleus_theme.css" rel="stylesheet"/>
- <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
- <script src="js/bootstrap/3.3.7/bootstrap.min.js"></script>
- <script src="js/bootstrap-toc/0.4.1/bootstrap-toc.min.js"></script>
-
- <!-- Coderay syntax formatter -->
- <style type="text/css">
- /* Stylesheet for CodeRay to match GitHub theme | MIT License | http://foundation.zurb.com */
-/*pre.CodeRay {background-color:#f7f7f8;}*/
-.CodeRay .line-numbers{border-right:1px solid #d8d8d8;padding:0 0.5em 0 .25em}
-.CodeRay span.line-numbers{display:inline-block;margin-right:.5em;color:rgba(0,0,0,.3)}
-.CodeRay .line-numbers strong{color:rgba(0,0,0,.4)}
-table.CodeRay{border-collapse:separate;border-spacing:0;margin-bottom:0;border:0;background:none}
-table.CodeRay td{vertical-align: top;line-height:1.45}
-table.CodeRay td.line-numbers{text-align:right}
-table.CodeRay td.line-numbers>pre{padding:0;color:rgba(0,0,0,.3)}
-table.CodeRay td.code{padding:0 0 0 .5em}
-table.CodeRay td.code>pre{padding:0}
-.CodeRay .debug{color:#fff !important;background:#000080 !important}
-.CodeRay .annotation{color:#007}
-.CodeRay .attribute-name{color:#000080}
-.CodeRay .attribute-value{color:#700}
-.CodeRay .binary{color:#509}
-.CodeRay .comment{color:#998;font-style:italic}
-.CodeRay .char{color:#04d}
-.CodeRay .char .content{color:#04d}
-.CodeRay .char .delimiter{color:#039}
-.CodeRay .class{color:#458;font-weight:bold}
-.CodeRay .complex{color:#a08}
-.CodeRay .constant,.CodeRay .predefined-constant{color:#008080}
-.CodeRay .color{color:#099}
-.CodeRay .class-variable{color:#369}
-.CodeRay .decorator{color:#b0b}
-.CodeRay .definition{color:#099}
-.CodeRay .delimiter{color:#000}
-.CodeRay .doc{color:#970}
-.CodeRay .doctype{color:#34b}
-.CodeRay .doc-string{color:#d42}
-.CodeRay .escape{color:#666}
-.CodeRay .entity{color:#800}
-.CodeRay .error{color:#808}
-.CodeRay .exception{color:inherit}
-.CodeRay .filename{color:#099}
-.CodeRay .function{color:#900;font-weight:bold}
-.CodeRay .global-variable{color:#008080}
-.CodeRay .hex{color:#058}
-.CodeRay .integer,.CodeRay .float{color:#099}
-.CodeRay .include{color:#555}
-.CodeRay .inline{color:#000}
-.CodeRay .inline .inline{background:#ccc}
-.CodeRay .inline .inline .inline{background:#bbb}
-.CodeRay .inline .inline-delimiter{color:#d14}
-.CodeRay .inline-delimiter{color:#d14}
... 57840 lines suppressed ...