blob: 79026d21bac19f877353e3a024059f38afcaa025 [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>PersistenceManagerFactory</title>
<link rel="icon" type="image/png" href="images/JDOx150.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:#f7f7f8}
.CodeRay .line-numbers{border-right:1px solid currentColor;opacity:.35;padding:0 .5em 0 0}
.CodeRay span.line-numbers{display:inline-block;margin-right:.75em}
.CodeRay .line-numbers strong{color:#000}
table.CodeRay{border-collapse:separate;border:0;margin-bottom:0;background:none}
table.CodeRay td{vertical-align:top;line-height:inherit}
table.CodeRay td.line-numbers{text-align:right}
table.CodeRay td.code{padding:0 0 0 .75em}
.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" width="45.5" height="45.5" src="images/JDOx150.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" style="background-color:#2385c6">API Usage<span class="caret"></span></a>
<ul class="dropdown-menu">
<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 Plan/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><a href="jdohelper.html">JDO Helper</a></li>
<li role="separator" class="divider"></li>
<li><a href="guides-replication.html">Data Replication</a></li>
</ul>
</li>
<!-- menu item Types & Metadata -->
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Types &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="query_api.html">Query API</a></li>
<li role="separator" class="divider"></li>
<li><a href="jdoql.html">JDOQL</a></li>
<li><a href="jdoql_methods.html">Methods</a></li>
<li><a href="jdoql_result.html">Result</a></li>
<li><a href="jdoql_quickref.pdf">Quick Ref PDF</a></li>
<li><a href="jdoql_typed.html">JDOQL Typed API</a></li>
<li role="separator" class="divider"></li>
<li><a href="query_sql.html">SQL</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="Persistence_Manager_Factory">Persistence Manager Factory</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Any JDO-enabled application will require (at least) one <em>PersistenceManagerFactory</em>.
Typically applications create one per datastore being utilised.
A <em>PersistenceManagerFactory</em> provides access to <em>PersistenceManager</em>s which allow objects to be persisted, and retrieved.
The <em>PersistenceManagerFactory</em> can be configured to provide particular behaviour.</p>
</div>
<div class="paragraph">
<p>A simple way of creating a <em>PersistenceManagerFactory</em>
<a href="api32/apidocs/javax/jdo/PersistenceManagerFactory.html"><span class="image"><img src="images/javadoc.png" alt="image"></span></a>
is using a set of properties controlling its behaviour, as follows</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java"><span class="predefined-type">Properties</span> properties = <span class="keyword">new</span> <span class="predefined-type">Properties</span>();
properties.setProperty(<span class="string"><span class="delimiter">&quot;</span><span class="content">javax.jdo.PersistenceManagerFactoryClass</span><span class="delimiter">&quot;</span></span>, <span class="string"><span class="delimiter">&quot;</span><span class="content">{my_implementation_pmf_class}</span><span class="delimiter">&quot;</span></span>);
properties.setProperty(<span class="string"><span class="delimiter">&quot;</span><span class="content">javax.jdo.option.ConnectionURL</span><span class="delimiter">&quot;</span></span>, <span class="string"><span class="delimiter">&quot;</span><span class="content">jdbc:mysql://localhost/myDB</span><span class="delimiter">&quot;</span></span>);
properties.setProperty(<span class="string"><span class="delimiter">&quot;</span><span class="content">javax.jdo.option.ConnectionUserName</span><span class="delimiter">&quot;</span></span>, <span class="string"><span class="delimiter">&quot;</span><span class="content">login</span><span class="delimiter">&quot;</span></span>);
properties.setProperty(<span class="string"><span class="delimiter">&quot;</span><span class="content">javax.jdo.option.ConnectionPassword</span><span class="delimiter">&quot;</span></span>, <span class="string"><span class="delimiter">&quot;</span><span class="content">password</span><span class="delimiter">&quot;</span></span>);
PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory(properties);</code></pre>
</div>
</div>
<div class="paragraph">
<p>A slight variation on this, is to use a file containg these properties (<code>jdo.properties</code> for example) to create the PMF, like this</p>
</div>
<div class="literalblock">
<div class="content">
<pre>javax.jdo.PersistenceManagerFactoryClass={my_implementation_pmf_class}
javax.jdo.option.ConnectionURL=jdbc:mysql://localhost/myDB
javax.jdo.option.ConnectionUserName=login
javax.jdo.option.ConnectionPassword=password</pre>
</div>
</div>
<div class="paragraph">
<p>and then to create the <em>PersistenceManagerFactory</em> using this file</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java">PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory(<span class="string"><span class="delimiter">&quot;</span><span class="content">jdo.properties</span><span class="delimiter">&quot;</span></span>);</code></pre>
</div>
</div>
<div class="paragraph">
<p>You could alternatively make use of a JPA <code>persistence.xml</code> file to create a PMF, like this</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="xml"><span class="preprocessor">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;</span>
<span class="tag">&lt;persistence</span> <span class="attribute-name">xmlns</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">https://jakarta.ee/xml/ns/persistence</span><span class="delimiter">&quot;</span></span>
<span class="attribute-name">xmlns:xsi</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">http://www.w3.org/2001/XMLSchema-instance</span><span class="delimiter">&quot;</span></span>
<span class="attribute-name">xsi:schemaLocation</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">https://jakarta.ee/xml/ns/persistence</span>
<span class="content">https://jakarta.ee/xml/ns/persistence/persistence_3_0.xsd</span><span class="delimiter">&quot;</span></span> <span class="attribute-name">version</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">3.0</span><span class="delimiter">&quot;</span></span><span class="tag">&gt;</span>
<span class="comment">&lt;!-- MyApp persistence unit --&gt;</span>
<span class="tag">&lt;persistence-unit</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">MyApp</span><span class="delimiter">&quot;</span></span><span class="tag">&gt;</span>
<span class="tag">&lt;class&gt;</span>mydomain.Product<span class="tag">&lt;/class&gt;</span>
<span class="tag">&lt;class&gt;</span>mydomain.Book<span class="tag">&lt;/class&gt;</span>
<span class="tag">&lt;class&gt;</span>mydomain.CompactDisc<span class="tag">&lt;/class&gt;</span>
<span class="tag">&lt;exclude-unlisted-classes</span><span class="tag">/&gt;</span>
<span class="tag">&lt;properties&gt;</span>
<span class="tag">&lt;property</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">datanucleus.ConnectionURL</span><span class="delimiter">&quot;</span></span> <span class="attribute-name">value</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">jdbc:mysql://localhost/myDB</span><span class="delimiter">&quot;</span></span><span class="tag">/&gt;</span>
<span class="tag">&lt;property</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">datanucleus.ConnectionUserName</span><span class="delimiter">&quot;</span></span> <span class="attribute-name">value</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">mysql</span><span class="delimiter">&quot;</span></span><span class="tag">/&gt;</span>
<span class="tag">&lt;property</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">datanucleus.ConnectionPassword</span><span class="delimiter">&quot;</span></span> <span class="attribute-name">value</span>=<span class="string"><span class="delimiter">&quot;</span><span class="delimiter">&quot;</span></span><span class="tag">/&gt;</span>
<span class="tag">&lt;/properties&gt;</span>
<span class="tag">&lt;/persistence-unit&gt;</span>
<span class="tag">&lt;/persistence&gt;</span></code></pre>
</div>
</div>
<div class="paragraph">
<p>and then instantiate the PMF using the <em>persistence unit name</em>, defining the classes that have JDO annotations that make up this application.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java">PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory(<span class="string"><span class="delimiter">&quot;</span><span class="content">MyApp</span><span class="delimiter">&quot;</span></span>);</code></pre>
</div>
</div>
<div class="paragraph">
<p>An alternative using JNDI would be to call <em>JDOHelper.getPersistenceManagerFactory(jndiLocation, context);</em>, hence
accessing the properties via JNDI.</p>
</div>
<div class="paragraph">
<p>Whichever way we wish to obtain the <em>PersistenceManagerFactory</em> we have defined a series of properties to give the behaviour of the <em>PersistenceManagerFactory</em>.
The first property specifies to use PMF of the implementation required to be used, and the following 4 properties
define the datastore that it should connect to.</p>
</div>
<div class="paragraph">
<p><br></p>
</div>
<div class="sect2">
<h3 id="standard_properties">Standard JDO Properties</h3>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Name</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>javax.jdo.PersistenceManagerFactoryClass</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The name of the PersistenceManager implementation</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>javax.jdo.option.ConnectionFactory</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Instance of a connection factory. For RBDMS, it must be an instance of javax.sql.DataSource.
<strong>This is for a transactional DataSource</strong></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>javax.jdo.option.ConnectionFactory2</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Instance of a connection factory. For RBDMS, it must be an instance of javax.sql.DataSource.
<strong>This is for a non-transactional DataSource</strong></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>javax.jdo.option.ConnectionFactoryName</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The JNDI name for a connection factory. For RBDMS, it must be a JNDI name that points to a javax.sql.DataSource object.
<strong>This is for a transactional DataSource</strong></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>javax.jdo.option.ConnectionFactory2Name</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The JNDI name for a connection factory. For RBDMS, it must be a JNDI name that points to a javax.sql.DataSource object.
<strong>This is for a non-transactional DataSource</strong></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>javax.jdo.option.ConnectionDriverName</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The name of the driver to use for the DB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>javax.jdo.option.ConnectionDriverURL</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">URL specifying the datastore to use for persistence</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>javax.jdo.option.ConnectionUserName</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Username to use for connecting to the DB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>javax.jdo.option.ConnectionPassword</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Password to use for connecting to the DB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>javax.jdo.option.IgnoreCache</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether to ignore the cache for queries. Range of Values: true | false</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>javax.jdo.option.Multithreaded</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether to run the PersistenceManager multithreaded.
Range of Values: true | false</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>javax.jdo.option.NontransactionalRead</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether to allow nontransactional reads.
Range of Values: true | false</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>javax.jdo.option.NontransactionalWrite</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether to allow nontransactional writes.
Range of Values: true | false</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>javax.jdo.option.Optimistic</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether to use <a href="transactions.html#locking">Optimistic locking</a> on transactions.
Range of Values: true | false</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>javax.jdo.option.RetainValues</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether to suppress the clearing of values from persistent instances on transaction completion.
Range of Values: true | false</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>javax.jdo.option.RestoreValues</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether persistent object have transactional field values restored when transaction rollback occurs.
Range of Values: true | false</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>javax.jdo.option.Mapping</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Name for the ORM MetaData mapping files to use with this PMF.
For example if this is set to "mysql" then the implementation looks for MetaData mapping files called "{classname}-mysql.orm" or "package-mysql.orm".
If this is not specified then the JDO implementation assumes that all is specified in the JDO MetaData file.
<em>ORM datastores only</em></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>javax.jdo.mapping.Catalog</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the catalog to use by default for all classes persisted using this PMF.
This can be overridden in the MetaData where required, and is optional.
<em>ORM datastores only</em></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>javax.jdo.mapping.Schema</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the schema to use by default for all classes persisted using this PMF.
This can be overridden in the MetaData where required, and is optional.
<em>ORM datastores only</em></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>javax.jdo.option.DetachAllOnCommit</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Allows the user to select that when a transaction is committed all objects enlisted in that transaction will be automatically detached.
Range of Values: true | <strong>false</strong></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>javax.jdo.option.CopyOnAttach</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether, when attaching a detached object, we create an attached copy or simply migrate the detached object to attached state.
Range of Values: <strong>true</strong> | false</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>javax.jdo.option.TransactionType</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Type of transaction to use. If running under JavaSE the default is RESOURCE_LOCAL, and if running under JavaEE/JakartaEE the default is JTA.
Range of Values: RESOURCE_LOCAL | JTA</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>javax.jdo.option.PersistenceUnitName</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the "persistence-unit" to use with this PMF. This borrows the "persistence-unit" concept from JPA for use with JDO.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>javax.jdo.option.ServerTimeZoneID</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Id of the TimeZone under which the datastore server is running.
If this is not specified or is set to null it is assumed that the datastore server is running in the same timezone as the JVM under which the
implementation is running.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>javax.jdo.option.Name</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the PMF. This is for use with "named PMF" functionality (see jdoconfig.xml).</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>javax.jdo.option.ReadOnly</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether this datastore should be treated as read only.
Range of Values: true | <strong>false</strong></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>javax.jdo.option.TransactionIsolationLevel</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Isolation level to use for connections in the current transaction.
Range of Values: none | read-committed | read-uncommitted | repeatable-read | snapshot | serializable</p></td>
</tr>
</tbody>
</table>
</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>
|
<a href="https://privacy.apache.org/policies/privacy-policy-public.html" title="Privacy Policy">Privacy Policy</a>
</div>
</div>
<p class="text-center" style="margin-top:16px">&copy; 2005-2022 Apache Software Foundation. All Rights Reserved.</p>
</div>
</footer>
</body>
</html>