blob: 464605071498d325c6a7f6ad837cc6ff1f685fc5 [file] [log] [blame]
<!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="license.html">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 &amp; 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="coding-standards.html">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&#8217;t be changing at deployment. Things such as table and
column names shouldn&#8217;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&#8217;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 &lt;class&gt; 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 &lt;primary-key&gt; 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 &lt;fetch-plan&gt;
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
&lt;fetch-group&gt; 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
&lt;sequence&gt; 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 &lt;query&gt;
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, &#8230;&#8203;)</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 &lt;index&gt; 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 &lt;unique&gt; 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 &lt;field&gt; and &lt;property&gt; 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 &lt;collection&gt;, &lt;array&gt; and &lt;element&gt;
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 &lt;order&gt; 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 &lt;map&gt; and &lt;key&gt; 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 &lt;map&gt; and &lt;value&gt; 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 &lt;embedded&gt; 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 &lt;column&gt; 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 &lt;index&gt; 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 &lt;unique&gt; 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 &lt;foreign-key&gt; 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 &lt;extension&gt; 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">&copy; 2005-2020 Apache Software Foundation. All Rights Reserved.</p>
</div>
</footer>
</body>
</html>