Top Description Fields Constructors Methods
org.eclipse.persistence.platform.database

public final Class HANAPlatform

extends DatabasePlatform
Class Inheritance
Imports
java.io.IOException, .Writer, java.math.BigDecimal, .BigInteger, java.sql.Blob, .Clob, .Date, .SQLException, .Statement, .Time, .Timestamp, java.util.ArrayList, .Calendar, .Hashtable, .List, org.eclipse.persistence.expressions.ExpressionOperator, org.eclipse.persistence.internal.databaseaccess.DatabaseCall, .FieldTypeDefinition, org.eclipse.persistence.internal.expressions.ExpressionSQLPrinter, .FunctionExpression, .SQLSelectStatement, org.eclipse.persistence.internal.helper.ClassConstants, .DatabaseTable, .Helper, org.eclipse.persistence.internal.sessions.AbstractSession, org.eclipse.persistence.queries.ReadQuery, .ValueReadQuery, org.eclipse.persistence.tools.schemaframework.FieldDefinition, .TableDefinition

Database Platform for SAP HANA

Feature Testing
----------------------


Limitations
----------------

Author
Reiner Singer (SAP AG), Sabine Heider (SAP AG)

Field Summary

Modifier and TypeField and Description
private static final int
private static final long
Inherited from org.eclipse.persistence.platform.database.DatabasePlatform:
DEFAULT_VARCHAR_SIZE

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
protected void
appendCalendar(Calendar calendar, Writer writer)

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.appendCalendar.

Answer a platform correct string representation of a Calendar as a Timestamp, suitable for SQL generation.
protected void
appendDate(Date date, Writer writer)

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.appendDate.

Answer a platform correct string representation of a Date, suitable for SQL generation.
protected void
appendTime(Time time, Writer writer)

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.appendTime.

Answer a platform correct string representation of a Time, suitable for SQL generation.
protected void
appendTimestamp(Timestamp timestamp, Writer writer)

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.appendTimestamp.

Answer a platform correct string representation of a Timestamp, suitable for SQL generation.
protected Hashtable<Class<?>, FieldTypeDefinition>
buildFieldTypes()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.buildFieldTypes.

Return the mapping of class types to database types for the schema framework.
public ValueReadQuery
buildSelectQueryForSequenceObject(final String sequenceName, final Integer size)

Overrides org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform.buildSelectQueryForSequenceObject.

INTERNAL: Returns query used to read value generated by sequence object (like Oracle sequence).
public boolean
public int
computeMaxRowsForSQL(int firstResultIndex, int maxResults)

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.computeMaxRowsForSQL.

INTERNAL: Use the JDBC maxResults and firstResultIndex setting to compute a value to use when limiting the results of a query in SQL.
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 specification
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

Returns:

the expression operator representing the JPQL function current_timestamp as defined by 4.6.17.2.3 of the JPA 2.0 specification
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

public static ExpressionOperator
createLocate2Operator()

INTERNAL: Build locate operator with 3 params i.e. LOCATE("coffee", t0.DESCRIP, 4).

public static ExpressionOperator
createLocateOperator()

INTERNAL: Build locate operator i.e. LOCATE("ob", t0.F_NAME)

private static ExpressionOperator
createLogOperator()

Create the log operator for this platform

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 specification
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

Returns:

the expression operator representing the JPQL function variance
createVarianceOperator
()

Creates the expression operator representing the JPQL function variance

public int
executeBatch(Statement statement, boolean
- flag is set to true if this statement is prepared
isStatementPrepared
)

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.executeBatch.

Internal: This gets called on each batch statement execution Needs to be implemented so that it returns the number of rows successfully modified by this statement for optimistic locking purposes.
protected String
getCreateTempTableSqlPrefix()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.getCreateTempTableSqlPrefix.

INTERNAL: Override this method if the platform supports temporary tables.
public String
getInputProcedureToken()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.getInputProcedureToken.

Used for stored procedure creation: Prefix for INPUT parameters.
public int
getMaxFieldNameSize()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.getMaxFieldNameSize.

INTERNAL: returns the maximum number of characters that can be used in a field name on this platform.
public String
getOutputProcedureToken()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.getOutputProcedureToken.

This method is used to print the output parameter token when stored procedures are called
public String
public String
public DatabaseTable
getTempTableForTable(DatabaseTable
is original table for which temp table is created.
table
)

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.getTempTableForTable.

INTERNAL: May override this method if the platform support temporary tables.
protected void
public boolean
public boolean
protected void
public void
printSQLSelectStatement(DatabaseCall call, ExpressionSQLPrinter printer, SQLSelectStatement statement)

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.printSQLSelectStatement.

INTERNAL: Print the SQL representation of the statement on a stream, storing the fields in the DatabaseCall.
public boolean
public boolean
public boolean
shouldBindLiterals()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.shouldBindLiterals.

PUBLIC: Allows platform to choose whether to bind literals in DatabaseCalls or not.
public boolean
shouldOptimizeDataConversion()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.shouldOptimizeDataConversion.

Return if our driver level data conversion optimization is enabled.
public boolean
shouldPrintOuterJoinInWhereClause()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.shouldPrintOuterJoinInWhereClause.

Some database require outer joins to be given in the where clause, others require it in the from clause.
public boolean
shouldPrintStoredProcedureArgumentNameInCall()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.shouldPrintStoredProcedureArgumentNameInCall.

INTERNAL: Should the variable name of a stored procedure call be printed as part of the procedure call e.g. EXECUTE PROCEDURE MyStoredProc(myvariable = ?)
protected boolean
shouldTempTableSpecifyPrimaryKeys()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.shouldTempTableSpecifyPrimaryKeys.

INTERNAL: Indicates whether temporary table can specify primary keys (some platforms don't allow that).
public boolean
shouldUseJDBCOuterJoinSyntax()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.shouldUseJDBCOuterJoinSyntax.

JDBC defines and outer join syntax, many drivers do not support this.
public boolean
public boolean
supportsGlobalTempTables()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.supportsGlobalTempTables.

INTERNAL: Indicates whether the platform supports global temporary tables.
public boolean
supportsIndividualTableLocking()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.supportsIndividualTableLocking.

INTERNAL: Indicates whether locking clause could be selectively applied only to some tables in a ReadQuery.
public boolean
supportsLocalTempTables()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.supportsLocalTempTables.

INTERNAL: Indicates whether the platform supports local temporary tables.
public boolean
public boolean
supportsSequenceObjects()

Overrides org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform.supportsSequenceObjects.

INTERNAL: Indicates whether the platform supports sequence objects.
public boolean
public boolean
public void
writeAddColumnClause(Writer writer, AbstractSession session, TableDefinition table, FieldDefinition field)

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.writeAddColumnClause.

INTERNAL: May need to override this method if the platform supports ALTER TABLE ADD <column> and the generated sql doesn't work.

Field Detail

MAX_VARTYPE_LENGTHback to summary
private static final int MAX_VARTYPE_LENGTH
serialVersionUIDback to summary
private static final long serialVersionUID

Constructor Detail

HANAPlatformback to summary
public HANAPlatform()

Method Detail

appendCalendarback to summary
protected void appendCalendar(Calendar calendar, Writer writer) throws IOException

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.appendCalendar.

Doc from org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.appendCalendar.

Answer a platform correct string representation of a Calendar as a Timestamp, suitable for SQL generation. The calendar is printed in the ODBC platform independent timestamp format {ts'YYYY-MM-DD HH:MM:SS.NNNNNNNNN'}.

Annotations
@Override
appendDateback to summary
protected void appendDate(Date date, Writer writer) throws IOException

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.appendDate.

Doc from org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.appendDate.

Answer a platform correct string representation of a Date, suitable for SQL generation. The date is printed in the ODBC platform independent format {d 'yyyy-mm-dd'}.

Annotations
@Override
appendTimeback to summary
protected void appendTime(Time time, Writer writer) throws IOException

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.appendTime.

Doc from org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.appendTime.

Answer a platform correct string representation of a Time, suitable for SQL generation. The time is printed in the ODBC platform independent format {t'hh:mm:ss'}.

Annotations
@Override
appendTimestampback to summary
protected void appendTimestamp(Timestamp timestamp, Writer writer) throws IOException

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.appendTimestamp.

Doc from org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.appendTimestamp.

Answer a platform correct string representation of a Timestamp, suitable for SQL generation. The timestamp is printed in the ODBC platform independent timestamp format {ts'YYYY-MM-DD HH:MM:SS.NNNNNNNNN'}.

Annotations
@Override
buildFieldTypesback to summary
protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.buildFieldTypes.

Doc from org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.buildFieldTypes.

Return the mapping of class types to database types for the schema framework.

Annotations
@Override
buildSelectQueryForSequenceObjectback to summary
public ValueReadQuery buildSelectQueryForSequenceObject(final String sequenceName, final Integer size)

Overrides org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform.buildSelectQueryForSequenceObject.

Doc from org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform.buildSelectQueryForSequenceObject.

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.

Annotations
@Override
canBatchWriteWithOptimisticLockingback to summary
public boolean canBatchWriteWithOptimisticLocking(DatabaseCall call)

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.canBatchWriteWithOptimisticLocking.

Doc from org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.canBatchWriteWithOptimisticLocking.

INTERNAL: Supports Batch Writing with Optimistic Locking.

Annotations
@Override
computeMaxRowsForSQLback to summary
public int computeMaxRowsForSQL(int firstResultIndex, int maxResults)

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.computeMaxRowsForSQL.

Doc from org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.computeMaxRowsForSQL.

INTERNAL: Use the JDBC maxResults and firstResultIndex setting to compute a value to use when limiting the results of a query in SQL. These limits tend to be used in two ways. 1. MaxRows is the index of the last row to be returned (like JDBC maxResults) 2. MaxRows is the number of rows to be returned By default, we assume case 1 and simply return the value of maxResults. Subclasses may provide an override

Annotations
@Override
createConcatExpressionOperatorback to summary
private static ExpressionOperator createConcatExpressionOperator()
createCurrentDateExpressionOperatorback 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

Returns:ExpressionOperator

the expression operator representing the JPQL function current_date as defined by 4.6.17.2.3 of the JPA 2.0 specification

createCurrentTimeExpressionOperatorback 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

Returns:ExpressionOperator

the expression operator representing the JPQL function current_timestamp as defined by 4.6.17.2.3 of the JPA 2.0 specification

createLocate2Operatorback to summary
public static ExpressionOperator createLocate2Operator()

INTERNAL: Build locate operator with 3 params i.e. LOCATE("coffee", t0.DESCRIP, 4). Last parameter is a start at.

createLocateOperatorback to summary
public static ExpressionOperator createLocateOperator()

INTERNAL: Build locate operator i.e. LOCATE("ob", t0.F_NAME)

createLogOperatorback to summary
private static ExpressionOperator createLogOperator()

Create the log operator for this platform

createNullifOperatorback to summary
private static ExpressionOperator createNullifOperator()
createNullValueOperatorback to summary
private static ExpressionOperator createNullValueOperator()
createTodayExpressionOperatorback 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

Returns:ExpressionOperator

the expression operator representing the JPQL function current_timestamp as defined by 4.6.17.2.3 of the JPA 2.0 specification

createVarianceOperatorback to summary
private static ExpressionOperator createVarianceOperator()

Creates the expression operator representing the JPQL function variance

Returns:ExpressionOperator

the expression operator representing the JPQL function variance

executeBatchback to summary
public int executeBatch(Statement statement, boolean isStatementPrepared) throws SQLException

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.executeBatch.

Doc from org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.executeBatch.

Internal: This gets called on each batch statement execution Needs to be implemented so that it returns the number of rows successfully modified by this statement for optimistic locking purposes.

Parameters
isStatementPrepared:boolean

- flag is set to true if this statement is prepared

Returns:int

- number of rows modified/deleted by this statement

Annotations
@Override
getCreateTempTableSqlPrefixback to summary
protected String getCreateTempTableSqlPrefix()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.getCreateTempTableSqlPrefix.

Doc from org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.getCreateTempTableSqlPrefix.

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.

Annotations
@Override
getInputProcedureTokenback to summary
public String getInputProcedureToken()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.getInputProcedureToken.

Used for stored procedure creation: Prefix for INPUT parameters. Not required on most platforms.

Annotations
@Override
getMaxFieldNameSizeback to summary
public int getMaxFieldNameSize()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.getMaxFieldNameSize.

Doc from org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.getMaxFieldNameSize.

INTERNAL: returns the maximum number of characters that can be used in a field name on this platform.

Annotations
@Override
getOutputProcedureTokenback to summary
public String getOutputProcedureToken()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.getOutputProcedureToken.

This method is used to print the output parameter token when stored procedures are called

Annotations
@Override
getProcedureCallHeaderback to summary
public String getProcedureCallHeader()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.getProcedureCallHeader.

Doc from org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.getProcedureCallHeader.

Used for sp calls.

Annotations
@Override
getProcedureCallTailback to summary
public String getProcedureCallTail()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.getProcedureCallTail.

Used for sp calls.

Annotations
@Override
getTempTableForTableback to summary
public DatabaseTable getTempTableForTable(DatabaseTable table)

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.getTempTableForTable.

Doc from org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.getTempTableForTable.

INTERNAL: May override this method if the platform support temporary tables.

Parameters
table:DatabaseTable

is original table for which temp table is created.

Returns:DatabaseTable

temporary table

Annotations
@Override
initializePlatformOperatorsback to summary
protected void initializePlatformOperators()

Overrides org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform.initializePlatformOperators.

Doc from org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform.initializePlatformOperators.

Initialize any platform-specific operators

Annotations
@Override
isForUpdateCompatibleWithDistinctback to summary
public boolean isForUpdateCompatibleWithDistinct()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.isForUpdateCompatibleWithDistinct.

Doc from org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.isForUpdateCompatibleWithDistinct.

INTERNAL: Indicates whether SELECT DISTINCT ... FOR UPDATE is allowed by the platform (Oracle doesn't allow this).

Annotations
@Override
isHANAback to summary
public boolean isHANA()

Overrides org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform.isHANA.

Implements org.eclipse.persistence.internal.databaseaccess.Platform.isHANA.

Annotations
@Override
printFieldTypeSizeback to summary
protected void printFieldTypeSize(Writer writer, FieldDefinition field, FieldTypeDefinition fieldType) throws IOException

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.printFieldTypeSize.

Annotations
@Override
printSQLSelectStatementback to summary
public void printSQLSelectStatement(DatabaseCall call, ExpressionSQLPrinter printer, SQLSelectStatement statement)

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.printSQLSelectStatement.

Doc from org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.printSQLSelectStatement.

INTERNAL: Print the SQL representation of the statement on a stream, storing the fields in the DatabaseCall.

Annotations
@Override
requiresUniqueConstraintCreationOnTableCreateback to summary
public boolean requiresUniqueConstraintCreationOnTableCreate()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.requiresUniqueConstraintCreationOnTableCreate.

Doc from org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.requiresUniqueConstraintCreationOnTableCreate.

Used for table creation. If a database platform does not support ALTER TABLE syntax to add/drop unique constraints (like Symfoware), overriding this method will allow the constraint to be specified in the CREATE TABLE statement.

This only affects unique constraints specified using the UniqueConstraint annotation or equivalent method. Columns for which the 'unique' attribute is set to true will be declared 'UNIQUE' in the CREATE TABLE statement regardless of the return value of this method.

Returns:boolean

whether unique constraints should be declared as part of the CREATE TABLE statement instead of in separate ALTER TABLE ADD/DROP statements.

Annotations
@Override
shouldAlwaysUseTempStorageForModifyAllback to summary
public boolean shouldAlwaysUseTempStorageForModifyAll()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.shouldAlwaysUseTempStorageForModifyAll.

Doc from org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.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.

Annotations
@Override
shouldBindLiteralsback to summary
public boolean shouldBindLiterals()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.shouldBindLiterals.

Doc from org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.shouldBindLiterals.

PUBLIC: Allows platform to choose whether to bind literals in DatabaseCalls or not.

Annotations
@Override
shouldOptimizeDataConversionback to summary
public boolean shouldOptimizeDataConversion()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.shouldOptimizeDataConversion.

Doc from org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.shouldOptimizeDataConversion.

Return if our driver level data conversion optimization is enabled. This can be disabled as some drivers perform data conversion themselves incorrectly.

Annotations
@Override
shouldPrintOuterJoinInWhereClauseback to summary
public boolean shouldPrintOuterJoinInWhereClause()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.shouldPrintOuterJoinInWhereClause.

Doc from org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.shouldPrintOuterJoinInWhereClause.

Some database require outer joins to be given in the where clause, others require it in the from clause.

Annotations
@Override
shouldPrintStoredProcedureArgumentNameInCallback to summary
public boolean shouldPrintStoredProcedureArgumentNameInCall()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.shouldPrintStoredProcedureArgumentNameInCall.

INTERNAL: Should the variable name of a stored procedure call be printed as part of the procedure call e.g. EXECUTE PROCEDURE MyStoredProc(myvariable = ?)

Annotations
@Override
shouldTempTableSpecifyPrimaryKeysback to summary
protected boolean shouldTempTableSpecifyPrimaryKeys()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.shouldTempTableSpecifyPrimaryKeys.

Doc from org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.shouldTempTableSpecifyPrimaryKeys.

INTERNAL: Indicates whether temporary table can specify primary keys (some platforms don't allow that). Used by writeCreateTempTableSql method.

Annotations
@Override
shouldUseJDBCOuterJoinSyntaxback to summary
public boolean shouldUseJDBCOuterJoinSyntax()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.shouldUseJDBCOuterJoinSyntax.

Doc from org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.shouldUseJDBCOuterJoinSyntax.

JDBC defines and outer join syntax, many drivers do not support this. So we normally avoid it.

Annotations
@Override
supportsForeignKeyConstraintsback to summary
public boolean supportsForeignKeyConstraints()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.supportsForeignKeyConstraints.

Annotations
@Override
supportsGlobalTempTablesback to summary
public boolean supportsGlobalTempTables()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.supportsGlobalTempTables.

Doc from org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.supportsGlobalTempTables.

INTERNAL: Indicates whether the platform supports global temporary tables. "Global" means that an attempt to create temporary table with the same name for the second time results in exception. EclipseLink attempts to create global temporary table in the beginning of UpdateAllQuery, execution and assumes that it already exists in case SQLException results. In the end of UpdateAllQuery execution all rows are removed from the temporary table - it is necessary in case the same temporary table will be used by another UpdateAllQuery in the same transaction. Override this method if the platform supports global temporary tables. Note that this method is ignored in case supportsLocalTempTables() returns true.

Annotations
@Override
supportsIndividualTableLockingback to summary
public boolean supportsIndividualTableLocking()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.supportsIndividualTableLocking.

Doc from org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.supportsIndividualTableLocking.

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 ...

Annotations
@Override
supportsLocalTempTablesback to summary
public boolean supportsLocalTempTables()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.supportsLocalTempTables.

Doc from org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.supportsLocalTempTables.

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.

Annotations
@Override
supportsNativeSequenceNumbersback to summary
public boolean supportsNativeSequenceNumbers()

Overrides org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform.supportsNativeSequenceNumbers.

Annotations
@Override
supportsSequenceObjectsback to summary
public boolean supportsSequenceObjects()

Overrides org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform.supportsSequenceObjects.

Doc from org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform.supportsSequenceObjects.

INTERNAL: Indicates whether the platform supports sequence objects. This method is to be used *ONLY* by sequencing classes

Annotations
@Override
supportsStoredFunctionsback to summary
public boolean supportsStoredFunctions()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.supportsStoredFunctions.

Annotations
@Override
usesStringBindingback to summary
public boolean usesStringBinding()

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.usesStringBinding.

Annotations
@Override
writeAddColumnClauseback to summary
public void writeAddColumnClause(Writer writer, AbstractSession session, TableDefinition table, FieldDefinition field) throws IOException

Overrides org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.writeAddColumnClause.

Doc from org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.writeAddColumnClause.

INTERNAL: May need to override this method if the platform supports ALTER TABLE ADD <column> and the generated sql doesn't work. Write the string that follows ALTER TABLE to create a sql statement for the platform in order to append a new column to an existing table.

Annotations
@Override