Class H2Platform

    • Constructor Detail

      • H2Platform

        public H2Platform()
    • Method Detail

      • computeMaxRowsForSQL

        public int computeMaxRowsForSQL​(int firstResultIndex,
                                        int maxResults)
        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 H2 uses case #2 and therefore the maxResults has to be altered based on the firstResultIndex.
        Overrides:
        computeMaxRowsForSQL in class DatabasePlatform
        See Also:
        MySQLPlatform
      • isAlterSequenceObjectSupported

        public boolean isAlterSequenceObjectSupported()
        Description copied from class: DatabasePlatform
        INTERNAL: Override this method if the platform supports sequence objects and it's possible to alter sequence object's increment in the database.
        Overrides:
        isAlterSequenceObjectSupported in class DatabasePlatform
      • isDynamicSQLRequiredForFunctions

        public boolean isDynamicSQLRequiredForFunctions()
        INTERNAL H2 has some issues with using parameters on certain functions and relations. This allows statements to disable binding only in these cases.
        Overrides:
        isDynamicSQLRequiredForFunctions in class DatabasePlatform
      • buildSelectQueryForSequenceObject

        public ValueReadQuery buildSelectQueryForSequenceObject​(String seqName,
                                                                Integer size)
        Description copied from class: DatasourcePlatform
        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.
        Overrides:
        buildSelectQueryForSequenceObject in class DatasourcePlatform
      • supportsIdentity

        public boolean supportsIdentity()
        Description copied from class: DatasourcePlatform
        INTERNAL: Indicates whether the platform supports identity. This method is to be used *ONLY* by sequencing classes
        Overrides:
        supportsIdentity in class DatasourcePlatform
      • supportsSequenceObjects

        public boolean supportsSequenceObjects()
        Description copied from class: DatasourcePlatform
        INTERNAL: Indicates whether the platform supports sequence objects. This method is to be used *ONLY* by sequencing classes
        Overrides:
        supportsSequenceObjects in class DatasourcePlatform
      • supportsGlobalTempTables

        public boolean supportsGlobalTempTables()
        Description copied from class: DatabasePlatform
        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.
        Overrides:
        supportsGlobalTempTables in class DatabasePlatform
      • getCreateTempTableSqlPrefix

        protected String getCreateTempTableSqlPrefix()
        Description copied from class: DatabasePlatform
        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.
        Overrides:
        getCreateTempTableSqlPrefix in class DatabasePlatform
      • toNumberOperator

        public static ExpressionOperator toNumberOperator()
        INTERNAL: Use CONVERT function for toNumber.
      • monthsBetweenOperator

        public static ExpressionOperator monthsBetweenOperator()
        INTERNAL: Use MONTH function for MONTH_BETWEEN.