JPOX
JPOX
 Project  |  Ver 1.1  |  Ver 1.2  |  JDO  |  JPA  |  Guides  |  Tools
1.2 | Persistence | JDO ORM | JPA ORM | Runtime | JDO Runtime | JPA Runtime | Extensions | Developer
JPOX Runtime
RDBMS Datastores
DB4O Datastore
RDBMS Persistence Properties

JPOX accepts a large number of persistence properties for use when defining either a PersistenceManagerFactory or an EntityManagerFactory. For RDBMS datastores there are several additional properties. These are listed here. Bear in mind that these only work with JPOX, and not with any other JDO/JPA implementation.

org.jpox.rdbms.statementBatchLimit
DescriptionMaximum number of statements that can be batched. Up to and including JPOX 1.2.0-beta-2 the default is -1 (unlimited) and only applies to container elements/keys/values. For later releases the default is 50 and also applies to delete of objects. Please refer to the Statement Batching guide
Range of Valuesinteger value (0 = no batching)


org.jpox.rdbms.CheckExistTablesOrViews
DescriptionWhether to check if the table/view exists. If false, it disables the automatic generation of tables that don't exist.
Range of Valuestrue | false


org.jpox.rdbms.initializeColumnInfo
DescriptionAllows control over what column information is initialised when a table is loaded for the first time. By default info for all columns will be loaded. Unfortunately some RDBMS are particularly poor at returning this information so we allow reduced forms to just load the primary key column info, or not to load any.
Range of ValuesALL | PK | NONE


org.jpox.rdbms.classAdditionMaxRetries
DescriptionThe maximum number of retries when trying to find a class to persist or when validating a class.
Range of Values3 | A positive integer


org.jpox.rdbms.constraintCreateMode
DescriptionHow to determine the RDBMS constraints to be created. JPOX will automatically add foreign-keys/indices to handle all relationships, and will utilise the specified MetaData foreign-key information. JDO2 will only use the information in the MetaData file(s).
Range of ValuesJPOX | JDO2


org.jpox.rdbms.uniqueConstraints.mapInverse
DescriptionWhether to add unique constraints to the element table for a map inverse field. Possible values are true or false.
Range of valuestrue | false


org.jpox.rdbms.discriminatorPerSubclassTable
DescriptionIn all versions of JPOX upto and including 1.2.0-beta-4 when using value-map discriminator strategy and when having subclasses with their own tables, a discriminator column would have been put in subclass tables too (without benefit). After 1.2.0-beta-4 only the base class where the discriminator is defined will have a discriminator column
Range of valuesfalse | true
org.jpox.rdbms.useUpdateLock
DescriptionWhether JPOX should use 'SELECT ... FOR UPDATE' on all fetch operations to prevent dirty writes. Only applies to read committed and read uncommitted transaction isolation level and doesn't apply to Optimistic Transactions. Please refer to the Transactions Guide
Range of Valuestrue | false
org.jpox.rdbms.stringDefaultLength
DescriptionThe default (max) length to use for all strings that don't have their column length defined in MetaData.
Range of Values256 (JDO) | 255 (JPA) | A valid length


org.jpox.rdbms.stringLengthExceededAction
DescriptionDefines what happens when persisting a String field and its length exceeds the length of the underlying datastore column. The default is to throw an Exception. The other option is to truncate the String to the length of the datastore column.
Range of ValuesEXCEPTION | TRUNCATE


org.jpox.rdbms.persistEmptyStringAsNull
DescriptionWhen persisting en empty string, should it be persisted as null in the datastore. This is to allow for datastores (Oracle) that dont differentiate between null and empty string. If it is set to false and the datastore doesnt differentiate then a special character will be saved when storing an empty string.
Range of Valuestrue | false
org.jpox.rdbms.sql.allowAllSQLStatements
Descriptionjavax.jdo.query.SQL queries are allowed by JDO 2 only to run SELECT queries. This extension permits to bypass this limitation (so for example can execute stored procedures).
Range of Valuesfalse | true


org.jpox.rdbms.query.fetchDirection
DescriptionThe direction in which the query results will be navigated.
Range of Valuesforward | reverse | unknown


org.jpox.rdbms.query.resultSetType
DescriptionType of ResultSet to create. Not all JDBC drivers accept all options. The values correspond directly to the ResultSet options.
Range of Valuesforward-only | scroll-sensitive | scroll-insensitive


org.jpox.rdbms.query.resultSetConcurrency
DescriptionWhether the ResultSet is readonly or can be updated. Not all JDBC drivers support all options. The values correspond directly to the ResultSet options.
Range of Valuesread-only | updateable


org.jpox.rdbms.jdoql.joinType
DescriptionWhen running a JDOQL query, this defines what type of joins JPOX should try to use overriding the natural choice for the query. In some situations the user may know that it should use "INNER", or "LEFT OUTER" joins only.
Range of ValuesINNER | LEFT OUTER


org.jpox.rdbms.jdoql.existsIncludesConstraints
DescriptionWhen a JDOQL query has a "contains" clause this will be replaced by an EXISTS sub-query. This property defines whether all other clauses should be applied to this sub-query, instead of the parent query. In some cases this will lead to inefficient queries.
Range of Valuestrue | false


org.jpox.rdbms.oracleNlsSortOrder
DescriptionSort order for Oracle String fields in queries (BINARY disables native language sorting)
Range of ValuesLATIN | See Oracle documentation


org.jpox.rdbms.schemaTable.tableName
DescriptionName of the schema table when using "SchemaTable" auto start mechanism. Please refer to the AutoStart Mechanism guide
Range of ValuesJPOX_TABLES | valid table name