Skip navigation links

Oracle Fusion Middleware Java API Reference for Oracle TopLink
11g Release 1 (11.1.1)

E28847-01


org.eclipse.persistence.platform.database
Class MaxDBPlatform

java.lang.Object
  extended by org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
      extended by org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
          extended by org.eclipse.persistence.platform.database.DatabasePlatform
              extended by org.eclipse.persistence.platform.database.MaxDBPlatform

All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, org.eclipse.persistence.internal.databaseaccess.Platform

public final class MaxDBPlatform
extends DatabasePlatform

Database Platform for SAP MaxDB.

Wiki page: http://wiki.eclipse.org/EclipseLink/Development/DatabasePlatform/MaxDBPlatform

Usage

The MaxDB platform is configured in the persistence.xml by the following property:

<property name="eclipselink_target_database" value="MaxDB"/>

Forward mapping with EclipseLink assumes that MaxDB is configured for unicode (in version 7.7, this is the default). Unicode mode also needs to be specified in the URL as follows:

jdbc:sapdb://localhost/E32?unicode=yes

Tested with:

Limitations:


Author:
Markus KARG (markus at headcrashing.eu), afischbach <, agoerler, Sabine Heider (sabine.heider at sap.com), Konstantin Schwed (konstantin.schwed at sap.com)
See Also:
Serialized Form

Field Summary
private static org.eclipse.persistence.internal.databaseaccess.FieldTypeDefinition FIELD_TYPE_DEFINITION_BLOB
           
private static org.eclipse.persistence.internal.databaseaccess.FieldTypeDefinition FIELD_TYPE_DEFINITION_CLOB
           
private static int MAX_VARCHAR_UNICODE_LENGTH
          Maximum length of type VARCHAR UNICODE (http://maxdb.sap.com/doc/7_8/45/33337d9faf2b34e10000000a1553f7/content.htm)

 

Fields inherited from class org.eclipse.persistence.platform.database.DatabasePlatform
DEFAULT_VARCHAR_SIZE

 

Fields inherited from class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
castSizeForVarcharParameter, classTypes, cursorCode, DEFAULT_MAX_BATCH_WRITING_SIZE, DEFAULT_PARAMETERIZED_MAX_BATCH_WRITING_SIZE, fieldTypes, IS_VALID_TIMEOUT, isCastRequired, maxBatchWritingSize, partitioningCallback, pingSQL, printOuterJoinInWhereClause, shouldBindAllParameters, shouldBindLiterals, shouldCacheAllStatements, shouldForceFieldNamesToUpperCase, shouldIgnoreCaseOnFieldComparisons, shouldOptimizeDataConversion, shouldTrimStrings, statementCacheSize, stringBindingSize, structConverters, supportsAutoCommit, tableCreationSuffix, transactionIsolation, typeConverters, Types_NCLOB, Types_SQLXML, useRownumFiltering, usesBatchWriting, usesByteArrayBinding, usesJDBCBatchWriting, usesNativeBatchWriting, usesNativeSQL, usesStreamsForBinding, usesStringBinding

 

Fields inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
conversionManager, dataTypesConvertedFromAClass, dataTypesConvertedToAClass, defaultSequence, endDelimiter, platformOperators, sequences, sequencesLock, startDelimiter, tableQualifier, timestampQuery

 

Constructor Summary
MaxDBPlatform()
           

 

Method Summary
private  void addNonBindingOperator(ExpressionOperator operator)
           
protected  java.util.Hashtable buildFieldTypes()
           
 ValueReadQuery buildSelectQueryForSequenceObject(java.lang.String sequenceName, java.lang.Integer size)
           
 boolean canBatchWriteWithOptimisticLocking(org.eclipse.persistence.internal.databaseaccess.DatabaseCall call)
           
private static ExpressionOperator createCoalesceOperator()
           
private static ExpressionOperator createConcatExpressionOperator()
           
private static ExpressionOperator createCurrentDateExpressionOperator()
          Creates the expression operator representing the JPQL function current_date as defined by ? 4.6.17.2.3 of the JPA 2.0 specification
private static ExpressionOperator createCurrentTimeExpressionOperator()
          Creates the expression operator representing the JPQL function current_timestamp as defined by ? 4.6.17.2.3 of the JPA 2.0 specification
private static ExpressionOperator createNullifOperator()
           
private static ExpressionOperator createNullValueOperator()
           
private static ExpressionOperator createTodayExpressionOperator()
          Creates the expression operator representing the JPQL function current_timestamp as defined by ? 4.6.17.2.3 of the JPA 2.0 specification
private static ExpressionOperator createToNumberOperator()
           
private static ExpressionOperator createTrim2ExpressionOperator()
           
 int executeBatch(java.sql.Statement statement, boolean isStatementPrepared)
           
protected  java.lang.String getCreateTempTableSqlPrefix()
           
 int getMaxFieldNameSize()
           
private  java.lang.String getQualifiedSequenceName(java.lang.String sequenceName)
           
 java.lang.String getSelectForUpdateNoWaitString()
           
 java.lang.String getSelectForUpdateString()
           
 org.eclipse.persistence.internal.helper.DatabaseTable getTempTableForTable(org.eclipse.persistence.internal.helper.DatabaseTable table)
           
protected  void initializePlatformOperators()
           
 boolean isForUpdateCompatibleWithDistinct()
           
 boolean isMaxDB()
           
protected  void printFieldTypeSize(java.io.Writer writer, FieldDefinition field, org.eclipse.persistence.internal.databaseaccess.FieldTypeDefinition fieldType)
           
 boolean shouldAlwaysUseTempStorageForModifyAll()
           
 boolean shouldBindLiterals()
           
 boolean shouldOptimizeDataConversion()
           
 boolean shouldPrintOuterJoinInWhereClause()
           
 boolean shouldUseJDBCOuterJoinSyntax()
           
 boolean supportsIndividualTableLocking()
           
 boolean supportsLocalTempTables()
           
 boolean supportsNativeSequenceNumbers()
           
 boolean supportsSequenceObjects()
           
 boolean supportsStoredFunctions()
           

 

Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
addBatch, addStructConverter, allowsSizeInProcedureArguments, appendBoolean, appendByteArray, appendCalendar, appendDate, appendLiteralToCall, appendLiteralToCallWithBinding, appendNumber, appendParameter, appendParameterInternal, appendString, appendTime, appendTimestamp, autoCommit, beginTransaction, buildBatchCriteria, buildBatchCriteriaForComplexId, buildCallWithReturning, buildClassTypes, buildCreateIndex, buildCreateIndex, buildDropIndex, buildDropIndex, buildProcedureCallString, buildSelectQueryForIdentity, buildSelectQueryForIdentity, buildSelectQueryForSequenceObject, buildSequenceObjectAlterIncrementWriter, buildSequenceObjectCreationWriter, buildSequenceObjectDeletionWriter, canBuildCallWithReturning, commitTransaction, computeMaxRowsForSQL, convertToDatabaseType, copyInto, createArray, createArray, createPlatformDefaultSequence, createStruct, createStruct, dontBindUpdateAllQueryUsingTempTables, executeStoredProcedure, freeTemporaryObject, getAssignmentString, getBatchBeginString, getBatchDelimiterString, getBatchEndString, getCastSizeForVarcharParameter, getClassTypes, getConnection, getConstraintDeletionString, getCreateTempTableSqlBodyForTable, getCreateTempTableSqlSuffix, getCreateViewString, getCreationInOutputProcedureToken, getCreationOutputProcedureToken, getCursorCode, getCustomModifyValueForCall, getDefaultSequenceTableName, getFieldTypeDefinition, getFieldTypes, getFunctionCallHeader, getIdentifierQuoteCharacter, getIndexNamePrefix, getInOutputProcedureToken, getInputProcedureToken, getJDBCOuterJoinString, getJDBCType, getJDBCType, getJdbcTypeName, getMaxBatchWritingSize, getMaxForeignKeyNameSize, getMaxIndexNameSize, getMaxUniqueKeyNameSize, getNoWaitString, getObjectFromResultSet, getOutputProcedureToken, getPartitioningCallback, getPingSQL, getProcedureArgumentSetter, getProcedureArgumentString, getProcedureAsString, getProcedureBeginString, getProcedureCallHeader, getProcedureCallTail, getProcedureEndString, getQualifiedName, getQualifiedSequenceTableName, getRefValue, getRefValue, getSelectForUpdateOfString, getSelectForUpdateWaitString, getSequenceCounterFieldName, getSequenceNameFieldName, getSequencePreallocationSize, getSequenceTableName, getStatementCacheSize, getStoredProcedureParameterPrefix, getStoredProcedureTerminationToken, getStringBindingSize, getStructConverters, getTableCreationSuffix, getTransactionIsolation, getTypeConverters, getVPDClearIdentifierQuery, getVPDCreationFunctionString, getVPDCreationPolicyString, getVPDDeletionString, getVPDSetIdentifierQuery, hasPartitioningCallback, initialize, initializeConnectionData, isAlterSequenceObjectSupported, isCastRequired, isDynamicSQLRequiredForFunctions, isInformixOuterJoin, isLockTimeoutException, isNullAllowedInSelectClause, isXDBDocument, maximumNumericValues, minimumNumericValues, minimumTimeIncrement, prepareBatchStatement, printFieldIdentityClause, printFieldNotNullClause, printFieldNullClause, printFieldTypeSize, printFieldUnique, printFieldUnique, printSQLSelectStatement, printStoredFunctionReturnKeyWord, printValuelist, printValuelist, registerOutputParameter, requiresNamedPrimaryKeyConstraints, requiresProcedureBrackets, requiresProcedureCallBrackets, requiresProcedureCallOuputToken, requiresTableInIndexDropDDL, requiresTypeNameToRegisterOutputParameter, requiresUniqueConstraintCreationOnTableCreate, retrieveFirstPrimaryKeyOrOne, rollbackTransaction, setCastSizeForVarcharParameter, setClassTypes, setCursorCode, setFieldTypes, setIsCastRequired, setMaxBatchWritingSize, setNullFromDatabaseField, setParameterValueInDatabaseCall, setPartitioningCallback, setPingSQL, setPrintOuterJoinInWhereClause, setSequenceCounterFieldName, setSequenceNameFieldName, setSequenceTableName, setShouldBindAllParameters, setShouldBindLiterals, setShouldCacheAllStatements, setShouldForceFieldNamesToUpperCase, setShouldIgnoreCaseOnFieldComparisons, setShouldOptimizeDataConversion, setShouldTrimStrings, setShouldUseRownumFiltering, setStatementCacheSize, setStringBindingSize, setSupportsAutoCommit, setTableCreationSuffix, setTransactionIsolation, setUsesBatchWriting, setUsesByteArrayBinding, setUsesJDBCBatchWriting, setUsesNativeBatchWriting, setUsesNativeSQL, setUsesStreamsForBinding, setUsesStringBinding, shouldBindAllParameters, shouldCacheAllStatements, shouldCreateIndicesForPrimaryKeys, shouldCreateIndicesOnUniqueKeys, shouldForceFieldNamesToUpperCase, shouldIgnoreCaseOnFieldComparisons, shouldIgnoreException, shouldNativeSequenceUseTransaction, shouldPrintAliasForUpdate, shouldPrintConstraintNameAfter, shouldPrintFieldIdentityClause, shouldPrintInOutputTokenBeforeType, shouldPrintInputTokenAtStart, shouldPrintLockingClauseAfterWhereClause, shouldPrintOutputTokenAtStart, shouldPrintOutputTokenBeforeType, shouldPrintStoredProcedureArgumentNameInCall, shouldPrintStoredProcedureVariablesAfterBeginString, shouldTempTableSpecifyPrimaryKeys, shouldTrimStrings, shouldUseCustomModifyForCall, shouldUseRownumFiltering, supportsANSIInnerJoinSyntax, supportsAutoCommit, supportsAutoConversionToNumericForArithmeticOperations, supportsForeignKeyConstraints, supportsGlobalTempTables, supportsIdentity, supportsIndexes, supportsLockingQueriesWithMultipleTables, supportsNestingOuterJoins, supportsOuterJoinsWithBrackets, supportsPrimaryKeyConstraint, supportsTempTables, supportsUniqueColumns, supportsUniqueKeyConstraints, supportsVPD, usesBatchWriting, usesByteArrayBinding, usesJDBCBatchWriting, usesNativeBatchWriting, usesNativeSQL, usesSequenceTable, usesStreamsForBinding, usesStringBinding, wasFailureCommunicationBased, writeAutoAssignmentSetClause, writeAutoJoinWhereClause, writeCleanUpTempTableSql, writeCreateTempTableSql, writeDeleteFromTargetTableUsingTempTableSql, writeFields, writeFieldsAutoClause, writeFieldsList, writeInsertIntoTableSql, writeJoinWhereClause, writeLOB, writeParameterMarker, writeTableCreationSuffix, writeUpdateOriginalFromTempTableSql

 

Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
addOperator, addSequence, addSequence, clone, convertObject, createConnectionCustomizer, getConversionManager, getDataTypesConvertedFrom, getDataTypesConvertedTo, getDefaultSequence, getDefaultSequenceToWrite, getEndDelimiter, getOperator, getPlatformOperators, getSelectSequenceQuery, getSequence, getSequences, getSequencesToWrite, getStartDelimiter, getTableQualifier, getTimestampFromServer, getTimestampQuery, getUpdateSequenceQuery, hasDefaultSequence, isAccess, isAttunity, isCloudscape, isDB2, isDBase, isDerby, isFirebird, isH2, isHSQL, isInformix, isMySQL, isODBC, isOracle, isOracle9, isPointBase, isPostgreSQL, isSQLAnywhere, isSQLServer, isSybase, isSymfoware, isTimesTen, isTimesTen7, removeAllSequences, removeSequence, sequencesAfterCloneCleanup, setConversionManager, setDefaultSequence, setEndDelimiter, setSelectSequenceNumberQuery, setSequencePreallocationSize, setSequences, setStartDelimiter, setTableQualifier, setTimestampQuery, setUpdateSequenceQuery, toString, usesPlatformDefaultSequence

 

Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

 

Field Detail

FIELD_TYPE_DEFINITION_CLOB

private static final org.eclipse.persistence.internal.databaseaccess.FieldTypeDefinition FIELD_TYPE_DEFINITION_CLOB

FIELD_TYPE_DEFINITION_BLOB

private static final org.eclipse.persistence.internal.databaseaccess.FieldTypeDefinition FIELD_TYPE_DEFINITION_BLOB

MAX_VARCHAR_UNICODE_LENGTH

private static final int MAX_VARCHAR_UNICODE_LENGTH
Maximum length of type VARCHAR UNICODE (http://maxdb.sap.com/doc/7_8/45/33337d9faf2b34e10000000a1553f7/content.htm)
See Also:
Constant Field Values

Constructor Detail

MaxDBPlatform

public MaxDBPlatform()

Method Detail

isForUpdateCompatibleWithDistinct

public boolean isForUpdateCompatibleWithDistinct()
Overrides:
isForUpdateCompatibleWithDistinct in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

getSelectForUpdateString

public java.lang.String getSelectForUpdateString()
Overrides:
getSelectForUpdateString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

getSelectForUpdateNoWaitString

public java.lang.String getSelectForUpdateNoWaitString()
Overrides:
getSelectForUpdateNoWaitString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

buildFieldTypes

protected final java.util.Hashtable buildFieldTypes()
Overrides:
buildFieldTypes in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

supportsIndividualTableLocking

public boolean supportsIndividualTableLocking()
Overrides:
supportsIndividualTableLocking in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

printFieldTypeSize

protected void printFieldTypeSize(java.io.Writer writer,
                                  FieldDefinition field,
                                  org.eclipse.persistence.internal.databaseaccess.FieldTypeDefinition fieldType)
                           throws java.io.IOException
Overrides:
printFieldTypeSize in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
Throws:
java.io.IOException

initializePlatformOperators

protected final void initializePlatformOperators()
Overrides:
initializePlatformOperators in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform

createConcatExpressionOperator

private static final ExpressionOperator createConcatExpressionOperator()

createTodayExpressionOperator

private static final ExpressionOperator createTodayExpressionOperator()
Creates the expression operator representing the JPQL function current_timestamp as defined by ? 4.6.17.2.3 of the JPA 2.0 specification
Returns:
the expression operator representing the JPQL function current_timestamp as defined by ? 4.6.17.2.3 of the JPA 2.0 specification

createCurrentDateExpressionOperator

private static final ExpressionOperator createCurrentDateExpressionOperator()
Creates the expression operator representing the JPQL function current_date as defined by ? 4.6.17.2.3 of the JPA 2.0 specification
Returns:
the expression operator representing the JPQL function current_date as defined by ? 4.6.17.2.3 of the JPA 2.0 specification

createCurrentTimeExpressionOperator

private static final ExpressionOperator createCurrentTimeExpressionOperator()
Creates the expression operator representing the JPQL function current_timestamp as defined by ? 4.6.17.2.3 of the JPA 2.0 specification
Returns:
the expression operator representing the JPQL function current_timestamp as defined by ? 4.6.17.2.3 of the JPA 2.0 specification

createTrim2ExpressionOperator

private static final ExpressionOperator createTrim2ExpressionOperator()

createNullValueOperator

private static final ExpressionOperator createNullValueOperator()

createCoalesceOperator

private static final ExpressionOperator createCoalesceOperator()

createToNumberOperator

private static final ExpressionOperator createToNumberOperator()

createNullifOperator

private static final ExpressionOperator createNullifOperator()

shouldOptimizeDataConversion

public boolean shouldOptimizeDataConversion()
Overrides:
shouldOptimizeDataConversion in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

addNonBindingOperator

private void addNonBindingOperator(ExpressionOperator operator)

supportsNativeSequenceNumbers

public final boolean supportsNativeSequenceNumbers()
Overrides:
supportsNativeSequenceNumbers in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

buildSelectQueryForSequenceObject

public final ValueReadQuery buildSelectQueryForSequenceObject(java.lang.String sequenceName,
                                                              java.lang.Integer size)
Overrides:
buildSelectQueryForSequenceObject in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

getCreateTempTableSqlPrefix

protected final java.lang.String getCreateTempTableSqlPrefix()
Overrides:
getCreateTempTableSqlPrefix in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

getMaxFieldNameSize

public final int getMaxFieldNameSize()
Overrides:
getMaxFieldNameSize in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

getQualifiedSequenceName

private final java.lang.String getQualifiedSequenceName(java.lang.String sequenceName)

supportsLocalTempTables

public final boolean supportsLocalTempTables()
Overrides:
supportsLocalTempTables in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

getTempTableForTable

public final org.eclipse.persistence.internal.helper.DatabaseTable getTempTableForTable(org.eclipse.persistence.internal.helper.DatabaseTable table)
Overrides:
getTempTableForTable in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

isMaxDB

public final boolean isMaxDB()
Specified by:
isMaxDB in interface org.eclipse.persistence.internal.databaseaccess.Platform
Overrides:
isMaxDB in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform

shouldAlwaysUseTempStorageForModifyAll

public final boolean shouldAlwaysUseTempStorageForModifyAll()
Overrides:
shouldAlwaysUseTempStorageForModifyAll in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

shouldBindLiterals

public final boolean shouldBindLiterals()
Overrides:
shouldBindLiterals in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

shouldPrintOuterJoinInWhereClause

public final boolean shouldPrintOuterJoinInWhereClause()
Overrides:
shouldPrintOuterJoinInWhereClause in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

shouldUseJDBCOuterJoinSyntax

public final boolean shouldUseJDBCOuterJoinSyntax()
Overrides:
shouldUseJDBCOuterJoinSyntax in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

supportsSequenceObjects

public boolean supportsSequenceObjects()
Overrides:
supportsSequenceObjects in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

supportsStoredFunctions

public final boolean supportsStoredFunctions()
Overrides:
supportsStoredFunctions in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

canBatchWriteWithOptimisticLocking

public boolean canBatchWriteWithOptimisticLocking(org.eclipse.persistence.internal.databaseaccess.DatabaseCall call)
Overrides:
canBatchWriteWithOptimisticLocking in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

executeBatch

public int executeBatch(java.sql.Statement statement,
                        boolean isStatementPrepared)
                 throws java.sql.SQLException
Overrides:
executeBatch in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
Throws:
java.sql.SQLException

Skip navigation links

Copyright © 1998, 2012, Oracle. All Rights Reserved.