Class TimesTenDialect

java.lang.Object
org.hibernate.dialect.Dialect
org.hibernate.dialect.TimesTenDialect

public class TimesTenDialect extends Dialect
A SQL dialect for TimesTen 5.1. Known limitations: joined-subclass support because of no CASE support in TimesTen No support for subqueries that includes aggregation - size() in HQL not supported - user queries that does subqueries with aggregation No CLOB/BLOB support No cascade delete support. No Calendar support No support for updating primary keys.
  • Constructor Details

    • TimesTenDialect

      public TimesTenDialect()
  • Method Details

    • dropConstraints

      public boolean dropConstraints()
      Description copied from class: Dialect
      Do we need to drop constraints before dropping tables in this dialect?
      Overrides:
      dropConstraints in class Dialect
      Returns:
      True if constraints must be dropped prior to dropping the table; false otherwise.
    • qualifyIndexName

      public boolean qualifyIndexName()
      Description copied from class: Dialect
      Do we need to qualify index names with the schema name?
      Overrides:
      qualifyIndexName in class Dialect
      Returns:
      boolean
    • supportsUnique

      public boolean supportsUnique()
      Description copied from class: Dialect
      Does this dialect support the UNIQUE column syntax?
      Overrides:
      supportsUnique in class Dialect
      Returns:
      boolean
    • supportsUniqueConstraintInCreateAlterTable

      public boolean supportsUniqueConstraintInCreateAlterTable()
      Description copied from class: Dialect
      Does this dialect support adding Unique constraints via create and alter table ?
      Overrides:
      supportsUniqueConstraintInCreateAlterTable in class Dialect
      Returns:
      boolean
    • getAddColumnString

      public String getAddColumnString()
      Description copied from class: Dialect
      The syntax used to add a column to a table (optional).
      Overrides:
      getAddColumnString in class Dialect
      Returns:
      The "add column" fragment.
    • supportsSequences

      public boolean supportsSequences()
      Description copied from class: Dialect
      Does this dialect support sequences?
      Overrides:
      supportsSequences in class Dialect
      Returns:
      True if sequences supported; false otherwise.
    • getSelectSequenceNextValString

      public String getSelectSequenceNextValString(String sequenceName)
      Description copied from class: Dialect
      Generate the select expression fragment that will retrieve the next value of a sequence as part of another (typically DML) statement.

      This differs from Dialect.getSequenceNextValString(String) in that this should return an expression usable within another statement.

      Overrides:
      getSelectSequenceNextValString in class Dialect
      Parameters:
      sequenceName - the name of the sequence
      Returns:
      The "nextval" fragment.
    • getSequenceNextValString

      public String getSequenceNextValString(String sequenceName)
      Description copied from class: Dialect
      Generate the appropriate select statement to to retrieve the next value of a sequence.

      This should be a "stand alone" select statement.

      Overrides:
      getSequenceNextValString in class Dialect
      Parameters:
      sequenceName - the name of the sequence
      Returns:
      String The "nextval" select string.
    • getCreateSequenceString

      public String getCreateSequenceString(String sequenceName)
      Description copied from class: Dialect
      Typically dialects which support sequences can create a sequence with a single command. This is convenience form of Dialect.getCreateSequenceStrings(java.lang.String) to help facilitate that.

      Dialects which support sequences and can create a sequence in a single command need *only* override this method. Dialects which support sequences but require multiple commands to create a sequence should instead override Dialect.getCreateSequenceStrings(java.lang.String).

      Overrides:
      getCreateSequenceString in class Dialect
      Parameters:
      sequenceName - The name of the sequence
      Returns:
      The sequence creation command
    • getDropSequenceString

      public String getDropSequenceString(String sequenceName)
      Description copied from class: Dialect
      Typically dialects which support sequences can drop a sequence with a single command. This is convenience form of Dialect.getDropSequenceStrings(java.lang.String) to help facilitate that.

      Dialects which support sequences and can drop a sequence in a single command need *only* override this method. Dialects which support sequences but require multiple commands to drop a sequence should instead override Dialect.getDropSequenceStrings(java.lang.String).

      Overrides:
      getDropSequenceString in class Dialect
      Parameters:
      sequenceName - The name of the sequence
      Returns:
      The sequence drop commands
    • getQuerySequencesString

      public String getQuerySequencesString()
      Description copied from class: Dialect
      Get the select command used retrieve the names of all sequences.
      Overrides:
      getQuerySequencesString in class Dialect
      Returns:
      The select command; or null if sequences are not supported.
      See Also:
    • createOuterJoinFragment

      public JoinFragment createOuterJoinFragment()
      Description copied from class: Dialect
      Create a JoinFragment strategy responsible for handling this dialect's variations in how joins are handled.
      Overrides:
      createOuterJoinFragment in class Dialect
      Returns:
      This dialect's JoinFragment strategy.
    • getCrossJoinSeparator

      public String getCrossJoinSeparator()
      Description copied from class: Dialect
      Get the separator to use for defining cross joins when translating HQL queries.

      Typically this will be either [ cross join ] or [, ]

      Note that the spaces are important!

      Overrides:
      getCrossJoinSeparator in class Dialect
      Returns:
    • getForUpdateString

      public String getForUpdateString()
      Description copied from class: Dialect
      Get the string to append to SELECT statements to acquire locks for this dialect.
      Overrides:
      getForUpdateString in class Dialect
      Returns:
      The appropriate FOR UPDATE clause string.
    • supportsColumnCheck

      public boolean supportsColumnCheck()
      Description copied from class: Dialect
      Does this dialect support column-level check constraints?
      Overrides:
      supportsColumnCheck in class Dialect
      Returns:
      True if column-level CHECK constraints are supported; false otherwise.
    • supportsTableCheck

      public boolean supportsTableCheck()
      Description copied from class: Dialect
      Does this dialect support table-level check constraints?
      Overrides:
      supportsTableCheck in class Dialect
      Returns:
      True if table-level CHECK constraints are supported; false otherwise.
    • supportsLimitOffset

      public boolean supportsLimitOffset()
      Description copied from class: Dialect
      Does this dialect's LIMIT support (if any) additionally support specifying an offset?
      Overrides:
      supportsLimitOffset in class Dialect
      Returns:
      True if the dialect supports an offset within the limit support.
    • supportsVariableLimit

      public boolean supportsVariableLimit()
      Description copied from class: Dialect
      Does this dialect support bind variables (i.e., prepared statement parameters) for its limit/offset?
      Overrides:
      supportsVariableLimit in class Dialect
      Returns:
      True if bind variables can be used; false otherwise.
    • supportsLimit

      public boolean supportsLimit()
      Description copied from class: Dialect
      Does this dialect support some form of limiting query results via a SQL clause?
      Overrides:
      supportsLimit in class Dialect
      Returns:
      True if this dialect supports some form of LIMIT.
    • useMaxForLimit

      public boolean useMaxForLimit()
      Description copied from class: Dialect
      Does the LIMIT clause take a "maximum" row number instead of a total number of returned rows?

      This is easiest understood via an example. Consider you have a table with 20 rows, but you only want to retrieve rows number 11 through 20. Generally, a limit with offset would say that the offset = 11 and the limit = 10 (we only want 10 rows at a time); this is specifying the total number of returned rows. Some dialects require that we instead specify offset = 11 and limit = 20, where 20 is the "last" row we want relative to offset (i.e. total number of rows = 20 - 11 = 9)

      So essentially, is limit relative from offset? Or is limit absolute?

      Overrides:
      useMaxForLimit in class Dialect
      Returns:
      True if limit is relative from offset; false otherwise.
    • getLimitString

      public String getLimitString(String querySelect, int offset, int limit)
      Description copied from class: Dialect
      Given a limit and an offset, apply the limit clause to the query.
      Overrides:
      getLimitString in class Dialect
      Parameters:
      querySelect - The query to which to apply the limit.
      offset - The offset of the limit
      limit - The limit of the limit ;)
      Returns:
      The modified query statement with the limit applied.
    • supportsCurrentTimestampSelection

      public boolean supportsCurrentTimestampSelection()
      Description copied from class: Dialect
      Does this dialect support a way to retrieve the database's current timestamp value?
      Overrides:
      supportsCurrentTimestampSelection in class Dialect
      Returns:
      True if the current timestamp can be retrieved; false otherwise.
    • getCurrentTimestampSelectString

      public String getCurrentTimestampSelectString()
      Description copied from class: Dialect
      Retrieve the command used to retrieve the current timestamp from the database.
      Overrides:
      getCurrentTimestampSelectString in class Dialect
      Returns:
      The command.
    • isCurrentTimestampSelectStringCallable

      public boolean isCurrentTimestampSelectStringCallable()
      Description copied from class: Dialect
      Should the value returned by Dialect.getCurrentTimestampSelectString() be treated as callable. Typically this indicates that JDBC escape syntax is being used...
      Overrides:
      isCurrentTimestampSelectStringCallable in class Dialect
      Returns:
      True if the Dialect.getCurrentTimestampSelectString() return is callable; false otherwise.
    • supportsTemporaryTables

      public boolean supportsTemporaryTables()
      Description copied from class: Dialect
      Does this dialect support temporary tables?
      Overrides:
      supportsTemporaryTables in class Dialect
      Returns:
      True if temp tables are supported; false otherwise.
    • generateTemporaryTableName

      public String generateTemporaryTableName(String baseTableName)
      Description copied from class: Dialect
      Generate a temporary table name given the base table.
      Overrides:
      generateTemporaryTableName in class Dialect
      Parameters:
      baseTableName - The table name from which to base the temp table name.
      Returns:
      The generated temp table name.
    • getCreateTemporaryTableString

      public String getCreateTemporaryTableString()
      Description copied from class: Dialect
      Command used to create a temporary table.
      Overrides:
      getCreateTemporaryTableString in class Dialect
      Returns:
      The command used to create a temporary table.
    • getCreateTemporaryTablePostfix

      public String getCreateTemporaryTablePostfix()
      Description copied from class: Dialect
      Get any fragments needing to be postfixed to the command for temporary table creation.
      Overrides:
      getCreateTemporaryTablePostfix in class Dialect
      Returns:
      Any required postfix.
    • getLockingStrategy

      public LockingStrategy getLockingStrategy(Lockable lockable, LockMode lockMode)
      Description copied from class: Dialect
      Get a strategy instance which knows how to acquire a database-level lock of the specified mode for this dialect.
      Overrides:
      getLockingStrategy in class Dialect
      Parameters:
      lockable - The persister for the entity to be locked.
      lockMode - The type of lock to be acquired.
      Returns:
      The appropriate locking strategy.
    • supportsEmptyInList

      public boolean supportsEmptyInList()
      Description copied from class: Dialect
      Does this dialect support empty IN lists?

      For example, is [where XYZ in ()] a supported construct?

      Overrides:
      supportsEmptyInList in class Dialect
      Returns:
      True if empty in lists are supported; false otherwise.