OpenJPA defines many configuration properties. Most of these properties are provided for advanced users who wish to customize OpenJPA's behavior; the majority of developers can omit them. The following properties apply to any OpenJPA back-end, though the given descriptions are tailored to OpenJPA's default JDBC store.
Property name: openjpa.AutoClear
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getAutoClear
            
Resource adaptor config-property: 
AutoClear
            
Default: datastore
            
Possible values: datastore,
all
            
Description: When to automatically clear instance state: on entering a datastore transaction, or on entering any transaction.
Property name: openjpa.AutoDetach
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getAutoDetach
            
Resource adaptor config-property: 
AutoDetach
            
Default: -
Possible values: close,
commit, nontx-read
            
Description: A comma-separated list of events when managed instances will be automatically detached.
Property name: openjpa.BrokerFactory
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getBrokerFactory
            
Resource adaptor config-property: 
BrokerFactory
            
Default: jdbc
            
Possible values: jdbc,
abstractstore, remote
            
Description: A plugin string (see
Section 4, “
            Plugin Configuration
        ”) describing the
org.apache.openjpa.kernel.BrokerFactory type to
use.
            
Property name: openjpa.BrokerImpl
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getBrokerImpl
            
Resource adaptor config-property: 
BrokerImpl
            
Default: default
            
Description: A plugin string (see
Section 4, “
            Plugin Configuration
        ”) describing the
org.apache.openjpa.kernel.Broker type to use at runtime. See
Section 1.2, “
                Broker Customization and Eviction
            ” on for details.
            
Property name: openjpa.ClassResolver
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getClassResolver
            
Resource adaptor config-property: 
ClassResolver
            
Default: default
            
Description: A plugin string (see
Section 4, “
            Plugin Configuration
        ”) describing the
org.apache.openjpa.util.ClassResolver implementation to use
for class name resolution. You may wish to plug in your own resolver if you have
special classloading needs.
            
Property name: openjpa.Compatibility
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getCompatibility
            
Resource adaptor config-property: 
Compatibility
            
Default: -
Description: Encapsulates options to mimic the behavior of previous OpenJPA releases.
Property name: 
openjpa.ConnectionDriverName
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getConnectionDriverName
            
Resource adaptor config-property: 
ConnectionDriverName
            
Default: -
Description: The full class name of either the
JDBC java.sql.Driver, or a 
javax.sql.DataSource implementation to use to connect to the
database. See Chapter 4, 
        JDBC
     for details.
            
Property name: 
openjpa.Connection2DriverName
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getConnection2DriverName
            
Resource adaptor config-property: 
Connection2DriverName
            
Default: -
Description: This property is equivalent to the
openjpa.ConnectionDriverName property described in
Section 5.7, “
                openjpa.ConnectionDriverName
            ”, but applies to the
alternate connection factory used for unmanaged connections. See
Section 2.1, “
                Managed and XA DataSources
            ” for details.
            
Property name: 
openjpa.ConnectionFactory
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getConnectionFactory
            
Resource adaptor config-property: 
ConnectionFactory
            
Default: -
Description: A javax.sql.DataSource
 to use to connect to the database. See
Chapter 4, 
        JDBC
     for details.
            
Property name: 
openjpa.ConnectionFactory2
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getConnectionFactory2
            
Resource adaptor config-property: 
ConnectionFactory2
            
Default: -
Description: An unmanaged 
javax.sql.DataSource to use to connect to the database. See
Chapter 4, 
        JDBC
     for details.
            
Property name: 
openjpa.ConnectionFactoryName
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getConnectionFactoryName
            
Resource adaptor config-property: 
ConnectionFactoryName
            
Default: -
Description: The JNDI location of a 
javax.sql.DataSource to use to connect to the database. See
Chapter 4, 
        JDBC
     for details.
            
Property name: 
openjpa.ConnectionFactory2Name
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getConnectionFactory2Name
            
Resource adaptor config-property: 
ConnectionFactory2Name
            
Default: -
Description: The JNDI location of an unmanaged
javax.sql.DataSource to use to connect to the database.
See Section 3, “
            XA Transactions
        ” for details.
            
Property name: 
openjpa.ConnectionFactoryMode
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getConnectionFactoryMode
            
Resource adaptor config-property: 
ConnectionFactoryMode
            
Default: local
            
Possible values: local,
managed
            
Description: The connection factory mode to use when integrating with the application server's managed transactions. See Section 2.1, “ Managed and XA DataSources ” for details.
Property name: 
openjpa.ConnectionFactoryProperties
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getConnectionFactoryProperties
            
Resource adaptor config-property: 
ConnectionFactoryProperties
            
Default: -
Description: A plugin string (see Section 4, “ Plugin Configuration ”) listing properties for configuration of the datasource in use. See the Chapter 4, JDBC for details.
Property name: 
openjpa.ConnectionFactory2Properties
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getConnectionFactory2Properties
            
Resource adaptor config-property: 
ConnectionFactory2Properties
            
Default: -
Description: This property is equivalent to the
openjpa.ConnectionFactoryProperties property described in
Section 5.14, “
                openjpa.ConnectionFactoryProperties
            ”, but applies to the
alternate connection factory used for unmanaged connections. See
Section 2.1, “
                Managed and XA DataSources
            ” for details.
            
Property name: 
openjpa.ConnectionPassword
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getConnectionPassword
            
Resource adaptor config-property: 
ConnectionPassword
            
Default: -
Description: The password for the user
specified in the ConnectionUserName property. See
Chapter 4, 
        JDBC
     for details.
            
Property name: 
openjpa.Connection2Password
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getConnection2Password
            
Resource adaptor config-property: 
Connection2Password
            
Default: -
Description: This property is equivalent to the
openjpa.ConnectionPassword property described in
Section 5.16, “
                openjpa.ConnectionPassword
            ”, but applies to the
alternate connection factory used for unmanaged connections. See
Section 2.1, “
                Managed and XA DataSources
            ” for details.
            
Property name: 
openjpa.ConnectionProperties
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getConnectionProperties
            
Resource adaptor config-property: 
ConnectionProperties
            
Default: -
Description: A plugin string (see
Section 4, “
            Plugin Configuration
        ”) listing properties to configure
the driver listed in the ConnectionDriverName property
described below. See Chapter 4, 
        JDBC
     for details.
            
Property name: 
openjpa.Connection2Properties
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getConnection2Properties
            
Resource adaptor config-property: 
Connection2Properties
            
Default: -
Description: This property is equivalent to the
openjpa.ConnectionProperties property described in
Section 5.18, “
                openjpa.ConnectionProperties
            ”, but applies to the
alternate connection factory used for unmanaged connections. See
Section 2.1, “
                Managed and XA DataSources
            ” for details.
            
Property name: openjpa.ConnectionURL
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getConnectionURL
            
Resource adaptor config-property: 
ConnectionURL
            
Default: -
Description: The JDBC URL for the database. See Chapter 4, JDBC for details.
Property name: openjpa.Connection2URL
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getConnection2URL
            
Resource adaptor config-property: 
Connection2URL
            
Default: -
Description: This property is equivalent to the
openjpa.ConnectionURL property described in
Section 5.20, “
                openjpa.ConnectionURL
            ”, but applies to the alternate
connection factory used for unmanaged connections. See
Section 2.1, “
                Managed and XA DataSources
            ” for details.
            
Property name: 
openjpa.ConnectionUserName
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getConnectionUserName
            
Resource adaptor config-property: 
ConnectionUserName
            
Default: -
Description: The user name to use when connecting to the database. See the Chapter 4, JDBC for details.
Property name: 
openjpa.Connection2UserName
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getConnection2UserName
            
Resource adaptor config-property: 
Connection2UserName
            
Default: -
Description: This property is equivalent to the
openjpa.ConnectionUserName property described in
Section 5.22, “
                openjpa.ConnectionUserName
            ”, but applies to the
alternate connection factory used for unmanaged connections. See
Section 2.1, “
                Managed and XA DataSources
            ” for details.
            
Property name: 
openjpa.ConnectionRetainMode
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getConnectionRetainMode
            
Resource adaptor config-property: 
ConnectionRetainMode
            
Default: on-demand
            
Description: Controls how OpenJPA uses datastore connections. This property can also be specified for individual sessions. See Section 8, “ Configuring the Use of JDBC Connections ” for details.
Property name: openjpa.DataCache
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getDataCache
            
Resource adaptor config-property: 
DataCache
            
Default: false
            
Description: A plugin list string (see
Section 4, “
            Plugin Configuration
        ”) describing the
org.apache.openjpa.datacache.DataCaches to use for data
caching. See Section 1.1, “
                Data Cache Configuration
            ” for details.
            
Property name: 
openjpa.DataCacheManager
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getDataCacheManager
            
Resource adaptor config-property: 
DataCacheManager
            
Default: default
            
Description: A plugin string (see
Section 4, “
            Plugin Configuration
        ”) describing the
openjpa.datacache.DataCacheManager that manages
the system data caches. See Section 1, “
            Data Cache
        ” for details
on data caching.
            
Property name: 
openjpa.DataCacheTimeout
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getDataCacheTimeout
            
Resource adaptor config-property: 
DataCacheTimeout
            
Default: -1
            
Description: The number of milliseconds that data in the data cache is valid. Set this to -1 to indicate that data should not expire from the cache. This property can also be specified for individual classes. See Section 1.1, “ Data Cache Configuration ” for details.
Property name: openjpa.DetachState
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getDetachState
            
Resource adaptor config-property: 
DetachState
            
Default: loaded
            
Possible values: loaded,
fetch-groups, all
            
Description: Determines which fields are part of the detached graph and related options. For more details, see Section 1.3, “ Defining the Detached Object Graph ”.
Property name: 
openjpa.DynamicDataStructs
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getDynamicDataStructs
            
Resource adaptor config-property: 
DynamicDataStructs
            
Default: false
            
Description: Whether to dynamically generate
customized structs to hold persistent data. Both the OpenJPA data cache and the
remote framework rely on data structs to cache and transfer persistent state.
With dynamic structs, OpenJPA can customize data storage for each class,
eliminating the need to generate primitive wrapper objects. This saves memory
and speeds up certain runtime operations. The price is a longer warm-up time for
the application - generating and loading custom classes into the JVM takes time.
Therefore, only set this property to true if you have a
long-running application where the initial cost of class generation is offset by
memory and speed optimization over time.
            
Property name: openjpa.FetchBatchSize
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getFetchBatchSize
            
Resource adaptor config-property: 
FetchBatchSize
            
Default: -1
            
Description: The number of rows to fetch at once when scrolling through a result set. The fetch size can also be set at runtime. See Section 10, “ Large Result Sets ” for details.
Property name: openjpa.FetchGroups
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getFetchGroups
            
Resource adaptor config-property: 
FetchGroups
            
Default: -
Description: A comma-separated list of fetch group names that are to be loaded when retrieving objects from the datastore. Fetch groups can also be set at runtime. See Section 7, “ Fetch Groups ” for details.
Property name: 
openjpa.FlushBeforeQueries
            
Property name: 
openjpa.FlushBeforeQueries
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getFlushBeforeQueries
            
Resource adaptor config-property: 
FlushBeforeQueries
            
Default: true
            
Description: Whether or not to flush any changes made in the current transaction to the datastore before executing a query. See Section 8, “ Configuring the Use of JDBC Connections ” for details.
Property name: openjpa.IgnoreChanges
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getIgnoreChanges
            
Resource adaptor config-property: 
IgnoreChanges
            
Default: false
            
Description: Whether to consider modifications
to persistent objects made in the current transaction when evaluating queries.
Setting this to true allows OpenJPA to ignore changes and
execute the query directly against the datastore. A value of false
 forces OpenJPA to consider whether the changes in the current
transaction affect the query, and if so to either evaluate the query in-memory
or flush before running it against the datastore.
            
            Property name:
            openjpa.Id
            
            Resource adaptor config-property:
            Id
            
Default: none
Description: An environment-specific identifier for this configuration. This might correspond to a JPA persistence-unit name, or to some other more-unique value available in the current environment.
Property name: openjpa.InverseManager
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getInverseManager
            
Resource adaptor config-property: 
InverseManager
            
Default: false
            
Possible values: false,
true
            
Description: A plugin string (see
Section 4, “
            Plugin Configuration
        ”) describing a
org.apache.openjpa.kernel.InverseManager to use
for managing bidirectional relations upon a flush. See
Section 5, “
            Managed Inverses
        ” for usage documentation.
            
Property name: openjpa.LockManager
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getLockManager
            
Resource adaptor config-property: 
LockManager
            
Default: version
            
Possible values: none,
sjvm, pessimistic, 
version
            
Description: A plugin string (see
Section 4, “
            Plugin Configuration
        ”) describing a
org.apache.openjpa.kernel.LockManager to use for acquiring
locks on persistent instances during transactions.  See 
Section 3.4, “
                Lock Manager
            ” for more information.
            
Property name: openjpa.LockTimeout
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getLockTimeout
            
Resource adaptor config-property: 
LockTimeout
            
Default: -1
            
Description: The number of milliseconds to wait for an object lock before throwing an exception, or -1 for no limit. See Section 3, “ Object Locking ” for details.
Property name: openjpa.Log
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getLog
            
Resource adaptor config-property: Log
            
Default: true
            
Possible values: openjpa,
commons, log4j, none
            
Description: A plugin string (see
Section 4, “
            Plugin Configuration
        ”) describing a
org.apache.openjpa.lib.log.LogFactory to use for logging.
For details on logging, see Chapter 3, 
        Logging
    .
            
Property name: openjpa.ManagedRuntime
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getManagedRuntime
            
Resource adaptor config-property: 
ManagedRuntime
            
Default: auto
            
Description: A plugin string (see
Section 4, “
            Plugin Configuration
        ”) describing the
org.apache.openjpa.ee.ManagedRuntime implementation to use
for obtaining a reference to the TransactionManager in an
enterprise environment.
            
Property name: openjpa.Mapping
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getMapping
            
Resource adaptor config-property: 
Mapping
            
Default: -
Description: The symbolic name of the object-to-datastore mapping to use.
Property name: openjpa.MaxFetchDepth
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getMaxFetchDepth
            
Resource adaptor config-property: 
MaxFetchDepth
            
Default: -1
            
Description: The maximum depth of relations to traverse when eager fetching. Use -1 for no limit. Defaults to no limit. See Section 8, “ Eager Fetching ” for details on eager fetching.
Property name: openjpa.MetaDataFactory
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getMetaDataFactory
            
Resource adaptor config-property: 
MetaDataFactory
            
Default: jpa
            
Description: A plugin string (see
Section 4, “
            Plugin Configuration
        ”) describing the
openjpa.meta.MetaDataFactory to use to store and
retrieve metadata for your persistent classes. See
Section 1, “
            Metadata Factory
        ” for details.
            
Property name: openjpa.Multithreaded
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getMultithreaded
            
Resource adaptor config-property: 
Multithreaded
            
Default: false
            
Description: Whether persistent instances and
OpenJPA components other than the EntityManagerFactory
will be accessed by multiple threads at once.
            
Property name: openjpa.Optimistic
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getOptimistic
            
Resource adaptor config-property: 
Optimistic
            
Default: true
            
Description: Selects between optimistic and pessimistic (datastore) transactional modes.
Property name: 
openjpa.OrphanedKeyAction
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getOrphanedKeyAction
            
Resource adaptor config-property: 
OrphanedKeyAction
            
Default: log
            
Possible values: log,
exception, none
            
Description: A plugin string (see
Section 4, “
            Plugin Configuration
        ”) describing a
org.apache.openjpa.event.OrphanedKeyAction to
invoke when OpenJPA discovers an orphaned datastore key. See
Section 15, “
            Orphaned Keys
        ” for details.
            
Property name: 
openjpa.NontransactionalRead
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getNontransactionalRead
            
Resource adaptor config-property: 
NontransactionalRead
            
Default: true
            
Description: Whether the OpenJPA runtime will allow you to read data outside of a transaction.
Property name: 
openjpa.NontransactionalWrite
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getNontransactionalWrite
            
Resource adaptor config-property: 
NontransactionalWrite
            
Default: true
            
Description: Whether you can modify persistent objects and perform persistence operations outside of a transaction. Changes will take effect on the next transaction.
Property name: openjpa.ProxyManager
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getProxyManager
            
Resource adaptor config-property: 
ProxyManager
            
Default: default
            
Description: A plugin string (see
Section 4, “
            Plugin Configuration
        ”) describing a
org.apache.openjpa.util.ProxyManager to use for proxying
mutable second class objects. See
Section 6.4.3, “
                    Custom Proxies
                ” for details.
            
Property name: openjpa.QueryCache
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getQueryCache
            
Resource adaptor config-property: 
QueryCache
            
Default: true, when the data
cache (see Section 5.25, “
                openjpa.DataCache
            ”) is also enabled, 
false otherwise.
            
Description: A plugin string (see
Section 4, “
            Plugin Configuration
        ”) describing the
org.apache.openjpa.datacache.QueryCache
implementation to use for caching of queries loaded from the data store. See
Section 1.3, “
                Query Cache
            ” for details.
            
Property name:
openjpa.QueryCompilationCache
			
Resource adaptor config-property: 
QueryCompilationCache
			
Default: true.
			
Description: A plugin string (see 
Section 4, “
            Plugin Configuration
        ”) describing the 
java.util.Map to use for caching of data used during 
query compilation.  See Section 2, “
            Query Compilation Cache
        ” for details.
			
Property name: openjpa.ReadLockLevel
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getReadLockLevel
            
Resource adaptor config-property: 
ReadLockLevel
            
Default: read
            
Possible values: none,
read, write, numeric values for
lock-manager specific lock levels
            
Description: The default level at which to lock
objects retrieved during a non-optimistic transaction. Note that for the default
JDBC lock manager,  read and write lock
levels are equivalent.
            
Property name: 
openjpa.RemoteCommitProvider
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getRemoteCommitProvider
            
Resource adaptor config-property: 
RemoteCommitProvider
            
Default: -
Description: A plugin string (see
Section 4, “
            Plugin Configuration
        ”) describing the
org.apache.openjpa.event.RemoteCommitProvider
implementation to use for distributed event notification. See
Section 2.1, “
                Remote Commit Provider Configuration
            ” for more information.
            
Property name: openjpa.RestoreState
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getRestoreState
            
Resource adaptor config-property: 
RestoreState
            
Default: none
            
Possible values: none,
immutable, all
            
Description: Whether to restore managed fields to their pre-transaction values when a rollback occurs.
Property name: openjpa.RetainState
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getRetainState
            
Resource adaptor config-property: 
RetainState
            
Default: true
            
Description: Whether persistent fields retain their values on transaction commit.
Property name: 
openjpa.RetryClassRegistration
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getRetryClassRegistration
            
Resource adaptor config-property: 
RetryClassRegistration
            
Default: false
            
Description: Controls whether to log a warning and defer registration instead of throwing an exception when a persistent class cannot be fully processed. This property should only be used in complex classloader situations where security is preventing OpenJPA from reading registered classes. Setting this to true unnecessarily may obscure more serious problems.
Property name: 
openjpa.SavepointManager
            
Configuration API: org.apache.openjpa.conf.OpenJPAConfiguration.getSavepointManager
Resource adaptor config-property: SavepointManager
Default: in-mem
            
Possible values: in-mem,
jdbc, oracle
            
Description: A plugin string (see
Section 4, “
            Plugin Configuration
        ”) describing a
org.apache.openjpa.kernel.SavepointManager to 
use for managing transaction savepoints. See 
Section 4, “
            Savepoints
        ” for details.
            
Property name: openjpa.Sequence
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getSequence
            
Resource adaptor config-property: 
Sequence
            
Default: table
            
Description: A plugin string (see
Section 4, “
            Plugin Configuration
        ”) describing the
org.apache.openjpa.kernel.Seq implementation to use for the
system sequence. See Section 6, “
            Generators
        ” for more
information.
            
Property name: openjpa.TransactionMode
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getTransactionMode
            
Resource adaptor config-property: 
TransactionMode
            
Default: local
            
Possible values: local,
managed
            
Description: The default transaction mode to use. You can override this setting per-session.
Property name: openjpa.WriteLockLevel
            
Configuration API:
org.apache.openjpa.conf.OpenJPAConfiguration.getWriteLockLevel
            
Resource adaptor config-property: 
WriteLockLevel
            
Default: write
            
Possible values: none,
read, write, numeric values for
lock-manager specific lock levels
            
Description: The default level at which to lock
objects changed during a non-optimistic transaction. Note that for the default
JDBC lock manager,  read and write lock
levels are equivalent.