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:
| Modifier and Type | Field and Description |
|---|---|
| private static final FieldTypeDefinition | |
| private static final FieldTypeDefinition | |
| private static final int | MAX_VARCHAR_UNICODE_LENGTH
Maximum length of type VARCHAR UNICODE (link) |
| Access | Constructor and Description |
|---|---|
| public |
| Modifier and Type | Method and Description |
|---|---|
| protected Hashtable | buildFieldTypes()
Overrides org. |
| public ValueReadQuery | buildSelectQueryForSequenceObject(final String sequenceName, final Integer size)
Overrides org. |
| public boolean | canBatchWriteWithOptimisticLocking(DatabaseCall call)
Overrides org. |
| private static ExpressionOperator | |
| private static ExpressionOperator | |
| private static ExpressionOperator | Returns: the expression operator representing the JPQL function current_date as defined by 4.6.17.2.3 of the JPA 2.0 specificationCreates 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 | Returns: the expression operator representing the JPQL function current_timestamp as defined by 4.6.17.2.3 of the JPA 2.0 specificationCreates 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 | |
| private static ExpressionOperator | |
| private static ExpressionOperator | Returns: the expression operator representing the JPQL function current_timestamp as defined by 4.6.17.2.3 of the JPA 2.0 specificationCreates 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 | |
| private static ExpressionOperator | |
| protected String | getCreateTempTableSqlPrefix()
Overrides org. |
| public int | getMaxFieldNameSize()
Overrides org. |
| public String | getSelectForUpdateNoWaitString()
Overrides org. |
| public String | getSelectForUpdateString()
Overrides org. |
| public DatabaseTable | getTempTableForTable(final DatabaseTable
is original table for which temp table is created. table)Overrides org. |
| protected void | initializePlatformOperators()
Overrides org. |
| public boolean | isForUpdateCompatibleWithDistinct()
Overrides org. |
| public boolean | |
| protected void | printFieldTypeSize(Writer writer, FieldDefinition field, FieldTypeDefinition fieldType)
Overrides org. |
| public boolean | shouldAlwaysUseTempStorageForModifyAll()
INTERNAL:
That method affects UpdateAllQuery and DeleteAllQuery execution.
|
| public boolean | shouldBindLiterals()
Overrides org. |
| public boolean | shouldOptimizeDataConversion()
Overrides org. |
| public boolean | shouldPrintOuterJoinInWhereClause()
Overrides org. |
| public boolean | shouldUseJDBCOuterJoinSyntax()
Overrides org. |
| public boolean | supportsIndividualTableLocking()
Overrides org. |
| public boolean | supportsLocalTempTables()
Overrides org. |
| public boolean | |
| public boolean | supportsSequenceObjects()
Overrides org. |
| public boolean |
| FIELD_TYPE_DEFINITION_BLOB | back to summary |
|---|---|
| private static final FieldTypeDefinition FIELD_TYPE_DEFINITION_BLOB | |
| FIELD_TYPE_DEFINITION_CLOB | back to summary |
|---|---|
| private static final FieldTypeDefinition FIELD_TYPE_DEFINITION_CLOB | |
| MAX_VARCHAR_UNICODE_LENGTH | back to summary |
|---|---|
| private static final int MAX_VARCHAR_UNICODE_LENGTH Maximum length of type VARCHAR UNICODE (link) | |
| MaxDBPlatform | back to summary |
|---|---|
| public MaxDBPlatform() | |
| buildFieldTypes | back to summary |
|---|---|
| protected Hashtable Overrides org. Doc from org. Return the mapping of class types to database types for the schema framework.
| |
| buildSelectQueryForSequenceObject | back to summary |
|---|---|
| public ValueReadQuery buildSelectQueryForSequenceObject(final String sequenceName, final Integer size) Overrides org. Doc from org. INTERNAL: Returns query used to read value generated by sequence object (like Oracle sequence). In case the other version of this method (taking no parameters) returns null, this method is called every time sequence object NativeSequence reads. If the platform supportsSequenceObjects then (at least) one of buildSelectQueryForSequenceObject methods should return non-null query.
| |
| canBatchWriteWithOptimisticLocking | back to summary |
|---|---|
| public boolean canBatchWriteWithOptimisticLocking(DatabaseCall call) Overrides org. Doc from org. INTERNAL: Supports Batch Writing with Optimistic Locking.
| |
| createCoalesceOperator | back to summary |
|---|---|
| private static ExpressionOperator createCoalesceOperator() | |
| createConcatExpressionOperator | back to summary |
|---|---|
| private static ExpressionOperator createConcatExpressionOperator() | |
| createCurrentDateExpressionOperator | back to summary |
|---|---|
| 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
| |
| createCurrentTimeExpressionOperator | back to summary |
|---|---|
| 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
| |
| createNullifOperator | back to summary |
|---|---|
| private static ExpressionOperator createNullifOperator() | |
| createNullValueOperator | back to summary |
|---|---|
| private static ExpressionOperator createNullValueOperator() | |
| createTodayExpressionOperator | back to summary |
|---|---|
| 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
| |
| createToNumberOperator | back to summary |
|---|---|
| private static ExpressionOperator createToNumberOperator() | |
| createTrim2ExpressionOperator | back to summary |
|---|---|
| private static ExpressionOperator createTrim2ExpressionOperator() | |
| getCreateTempTableSqlPrefix | back to summary |
|---|---|
| protected String getCreateTempTableSqlPrefix() Overrides org. Doc from org. INTERNAL: Override this method if the platform supports temporary tables. This should contain the beginning of sql string for creating temporary table - the sql statement name, for instance: "CREATE GLOBAL TEMPORARY TABLE ". Don't forget to end it with a space.
| |
| getMaxFieldNameSize | back to summary |
|---|---|
| public int getMaxFieldNameSize() Overrides org. Doc from org. INTERNAL: returns the maximum number of characters that can be used in a field name on this platform.
| |
| getSelectForUpdateNoWaitString | back to summary |
|---|---|
| public String getSelectForUpdateNoWaitString() Overrides org. Doc from org. This syntax does no wait on the lock. (i.e. In Oracle adding FOR UPDATE NOWAIT to the end will accomplish this)
| |
| getSelectForUpdateString | back to summary |
|---|---|
| public String getSelectForUpdateString() Overrides org. Doc from org. Most database support a syntax. although don't actually lock the row. Some require the OF some don't like it.
| |
| getTempTableForTable | back to summary |
|---|---|
| public DatabaseTable getTempTableForTable(final DatabaseTable table) Overrides org. Doc from org. INTERNAL: May override this method if the platform support temporary tables.
| |
| initializePlatformOperators | back to summary |
|---|---|
| protected void initializePlatformOperators() Overrides org. Doc from org. Initialize any platform-specific operators
| |
| isForUpdateCompatibleWithDistinct | back to summary |
|---|---|
| public boolean isForUpdateCompatibleWithDistinct() Overrides org. Doc from org. INTERNAL: Indicates whether SELECT DISTINCT ... FOR UPDATE is allowed by the platform (Oracle doesn't allow this).
| |
| isMaxDB | back to summary |
|---|---|
| public boolean isMaxDB() Overrides org. Implements org.
| |
| printFieldTypeSize | back to summary |
|---|---|
| protected void printFieldTypeSize(Writer writer, FieldDefinition field, FieldTypeDefinition fieldType) throws IOException Overrides org.
| |
| shouldAlwaysUseTempStorageForModifyAll | back to summary |
|---|---|
| public boolean shouldAlwaysUseTempStorageForModifyAll() INTERNAL: That method affects UpdateAllQuery and DeleteAllQuery execution. In case it returns false modify all queries would attempt to proceed without using temporary storage if it is possible. In case it returns true modify all queries would use temporary storage unless each modify statement doesn't reference any other tables. May need to override this method if the platform can't handle the sql generated for modify all queries without using temporary storage.
| |
| shouldBindLiterals | back to summary |
|---|---|
| public boolean shouldBindLiterals() Overrides org. Doc from org. PUBLIC: Allows platform to choose whether to bind literals in DatabaseCalls or not.
| |
| shouldOptimizeDataConversion | back to summary |
|---|---|
| public boolean shouldOptimizeDataConversion() Overrides org. Doc from org. Return if our driver level data conversion optimization is enabled. This can be disabled as some drivers perform data conversion themselves incorrectly.
| |
| shouldPrintOuterJoinInWhereClause | back to summary |
|---|---|
| public boolean shouldPrintOuterJoinInWhereClause() Overrides org. Doc from org. Some database require outer joins to be given in the where clause, others require it in the from clause.
| |
| shouldUseJDBCOuterJoinSyntax | back to summary |
|---|---|
| public boolean shouldUseJDBCOuterJoinSyntax() Overrides org. Doc from org. JDBC defines and outer join syntax, many drivers do not support this. So we normally avoid it.
| |
| supportsIndividualTableLocking | back to summary |
|---|---|
| public boolean supportsIndividualTableLocking() Overrides org. Doc from org. INTERNAL: Indicates whether locking clause could be selectively applied only to some tables in a ReadQuery. Example: the following locks the rows in SALARY table, doesn't lock the rows in EMPLOYEE table: on Oracle platform (method returns true): SELECT t0.EMP_ID..., t1.SALARY FROM EMPLOYEE t0, SALARY t1 WHERE ... FOR UPDATE t1.SALARY on SQLServer platform (method returns true): SELECT t0.EMP_ID..., t1.SALARY FROM EMPLOYEE t0, SALARY t1 WITH (UPDLOCK) WHERE ...
| |
| supportsLocalTempTables | back to summary |
|---|---|
| public boolean supportsLocalTempTables() Overrides org. Doc from org. INTERNAL: Indicates whether the platform supports local temporary tables. "Local" means that several threads may create temporary tables with the same name. Local temporary table is created in the beginning of UpdateAllQuery execution and dropped in the end of it. Override this method if the platform supports local temporary tables.
| |
| supportsNativeSequenceNumbers | back to summary |
|---|---|
| public boolean supportsNativeSequenceNumbers() Overrides org.
| |
| supportsSequenceObjects | back to summary |
|---|---|
| public boolean supportsSequenceObjects() Overrides org. Doc from org. INTERNAL: Indicates whether the platform supports sequence objects. This method is to be used *ONLY* by sequencing classes
| |
| supportsStoredFunctions | back to summary |
|---|---|
| public boolean supportsStoredFunctions() Overrides org.
| |