Class MimerSQLDialect

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

public class MimerSQLDialect extends Dialect
An Hibernate 3 SQL dialect for Mimer SQL. This dialect requires Mimer SQL 9.2.1 or later because of the mappings to NCLOB, BINARY, and BINARY VARYING.
  • Constructor Details

    • MimerSQLDialect

      public MimerSQLDialect()
      Even thoug Mimer SQL supports character and binary columns up to 15 000 in lenght, this is also the maximum width of the table (exluding LOBs). To avoid breaking the limit all the time we limit the length of the character columns to CHAR_MAX_LENTH, NATIONAL_CHAR_LENGTH for national characters, and BINARY_MAX_LENGTH for binary types.
  • Method Details

    • getAddColumnString

      public String getAddColumnString()
      The syntax used to add a column to a table
      Overrides:
      getAddColumnString in class Dialect
      Returns:
      The "add column" fragment.
    • dropConstraints

      public boolean dropConstraints()
      We do not have to drop constraints before we drop the table
      Overrides:
      dropConstraints in class Dialect
      Returns:
      True if constraints must be dropped prior to dropping the table; false otherwise.
    • supportsIdentityColumns

      public boolean supportsIdentityColumns()
      TODO: Check if Mimer SQL cannot handle the way DB2 does
      Overrides:
      supportsIdentityColumns in class Dialect
      Returns:
      True if IDENTITY columns are supported; false otherwise.
    • supportsSequences

      public boolean supportsSequences()
      Mimer SQL supports sequences
      Overrides:
      supportsSequences in class Dialect
      Returns:
      boolean
    • getSequenceNextValString

      public String getSequenceNextValString(String sequenceName)
      The syntax used to get the next value of a sequence in Mimer SQL
      Overrides:
      getSequenceNextValString in class Dialect
      Parameters:
      sequenceName - the name of the sequence
      Returns:
      String The "nextval" select string.
    • getCreateSequenceString

      public String getCreateSequenceString(String sequenceName)
      The syntax used to create a sequence. Since we presume the sequences will be used as keys, we make them unique.
      Overrides:
      getCreateSequenceString in class Dialect
      Parameters:
      sequenceName - The name of the sequence
      Returns:
      The sequence creation command
    • getDropSequenceString

      public String getDropSequenceString(String sequenceName)
      The syntax used to drop sequences
      Overrides:
      getDropSequenceString in class Dialect
      Parameters:
      sequenceName - The name of the sequence
      Returns:
      The sequence drop commands
    • supportsLimit

      public boolean supportsLimit()
      Mimer SQL does not support limit
      Overrides:
      supportsLimit in class Dialect
      Returns:
      True if this dialect supports some form of LIMIT.
    • getCascadeConstraintsString

      public String getCascadeConstraintsString()
      The syntax for using cascade on constraints
      Overrides:
      getCascadeConstraintsString in class Dialect
      Returns:
      String
    • getQuerySequencesString

      public String getQuerySequencesString()
      The syntax for fetching all sequnces avialable in the current schema.
      Overrides:
      getQuerySequencesString in class Dialect
      Returns:
      The select command; or null if sequences are not supported.
      See Also:
    • forUpdateOfColumns

      public boolean forUpdateOfColumns()
      Does the FOR UPDATE OF syntax specify particular columns?
      Overrides:
      forUpdateOfColumns in class Dialect
      Returns:
      True if the database supports FOR UPDATE OF syntax; false otherwise.
    • supportsForUpdate

      public boolean supportsForUpdate()
      Support the FOR UPDATE syntax? For now, returns false since the current version of the Mimer SQL JDBC Driver does not support updatable resultsets. Otherwise, Mimer SQL actually supports the for update syntax.
      Returns:
      boolean
    • supportsOuterJoinForUpdate

      public boolean supportsOuterJoinForUpdate()
      For now, simply return false since we don't updatable result sets.
      Overrides:
      supportsOuterJoinForUpdate in class Dialect
      Returns:
      True if outer joined rows can be locked via FOR UPDATE.