| <!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 & 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">"</span><span class="content">javax.jdo.PersistenceManagerFactoryClass</span><span class="delimiter">"</span></span>, <span class="string"><span class="delimiter">"</span><span class="content">{my_implementation_pmf_class}</span><span class="delimiter">"</span></span>); |
| properties.setProperty(<span class="string"><span class="delimiter">"</span><span class="content">javax.jdo.option.ConnectionURL</span><span class="delimiter">"</span></span>, <span class="string"><span class="delimiter">"</span><span class="content">jdbc:mysql://localhost/myDB</span><span class="delimiter">"</span></span>); |
| properties.setProperty(<span class="string"><span class="delimiter">"</span><span class="content">javax.jdo.option.ConnectionUserName</span><span class="delimiter">"</span></span>, <span class="string"><span class="delimiter">"</span><span class="content">login</span><span class="delimiter">"</span></span>); |
| properties.setProperty(<span class="string"><span class="delimiter">"</span><span class="content">javax.jdo.option.ConnectionPassword</span><span class="delimiter">"</span></span>, <span class="string"><span class="delimiter">"</span><span class="content">password</span><span class="delimiter">"</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">"</span><span class="content">jdo.properties</span><span class="delimiter">"</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"><?xml version="1.0" encoding="UTF-8" ?></span> |
| <span class="tag"><persistence</span> <span class="attribute-name">xmlns</span>=<span class="string"><span class="delimiter">"</span><span class="content">https://jakarta.ee/xml/ns/persistence</span><span class="delimiter">"</span></span> |
| <span class="attribute-name">xmlns:xsi</span>=<span class="string"><span class="delimiter">"</span><span class="content">http://www.w3.org/2001/XMLSchema-instance</span><span class="delimiter">"</span></span> |
| <span class="attribute-name">xsi:schemaLocation</span>=<span class="string"><span class="delimiter">"</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">"</span></span> <span class="attribute-name">version</span>=<span class="string"><span class="delimiter">"</span><span class="content">3.0</span><span class="delimiter">"</span></span><span class="tag">></span> |
| <span class="comment"><!-- MyApp persistence unit --></span> |
| <span class="tag"><persistence-unit</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">"</span><span class="content">MyApp</span><span class="delimiter">"</span></span><span class="tag">></span> |
| <span class="tag"><class></span>mydomain.Product<span class="tag"></class></span> |
| <span class="tag"><class></span>mydomain.Book<span class="tag"></class></span> |
| <span class="tag"><class></span>mydomain.CompactDisc<span class="tag"></class></span> |
| <span class="tag"><exclude-unlisted-classes</span><span class="tag">/></span> |
| <span class="tag"><properties></span> |
| <span class="tag"><property</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">"</span><span class="content">datanucleus.ConnectionURL</span><span class="delimiter">"</span></span> <span class="attribute-name">value</span>=<span class="string"><span class="delimiter">"</span><span class="content">jdbc:mysql://localhost/myDB</span><span class="delimiter">"</span></span><span class="tag">/></span> |
| <span class="tag"><property</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">"</span><span class="content">datanucleus.ConnectionUserName</span><span class="delimiter">"</span></span> <span class="attribute-name">value</span>=<span class="string"><span class="delimiter">"</span><span class="content">mysql</span><span class="delimiter">"</span></span><span class="tag">/></span> |
| <span class="tag"><property</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">"</span><span class="content">datanucleus.ConnectionPassword</span><span class="delimiter">"</span></span> <span class="attribute-name">value</span>=<span class="string"><span class="delimiter">"</span><span class="delimiter">"</span></span><span class="tag">/></span> |
| <span class="tag"></properties></span> |
| <span class="tag"></persistence-unit></span> |
| <span class="tag"></persistence></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">"</span><span class="content">MyApp</span><span class="delimiter">"</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">© 2005-2022 Apache Software Foundation. All Rights Reserved.</p> |
| </div> |
| </footer> |
| |
| </body> |
| </html> |