Interface IdentityColumnSupport

All Known Implementing Classes:
AbstractTransactSQLIdentityColumnSupport, CockroachDBIdentityColumnSupport, DB2390IdentityColumnSupport, DB2IdentityColumnSupport, DB2zIdentityColumnSupport, H2FinalTableIdentityColumnSupport, H2IdentityColumnSupport, HANAIdentityColumnSupport, HSQLIdentityColumnSupport, IdentityColumnSupportImpl, MariaDBIdentityColumnSupport, MySQLIdentityColumnSupport, Oracle12cIdentityColumnSupport, PostgreSQLIdentityColumnSupport, SQLServerIdentityColumnSupport, SybaseJconnIdentityColumnSupport

public interface IdentityColumnSupport
A set of operations providing support for identity columns in a certain SQL dialect.
Since:
5.1
  • Method Details

    • supportsIdentityColumns

      boolean supportsIdentityColumns()
      Does this dialect support identity column key generation?
      Returns:
      True if IDENTITY columns are supported; false otherwise.
    • supportsInsertSelectIdentity

      boolean supportsInsertSelectIdentity()
      Does the dialect support some form of inserting and selecting the generated IDENTITY value all in the same statement.
      Returns:
      True if the dialect supports selecting the just generated IDENTITY in the insert statement.
    • hasDataTypeInIdentityColumn

      boolean hasDataTypeInIdentityColumn()
      Whether this dialect have an Identity clause added to the data type or a completely separate identity data type
      Returns:
      boolean
    • appendIdentitySelectToInsert

      @Deprecated(forRemoval=true, since="6.5") String appendIdentitySelectToInsert(String insertString)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Provided we supportsInsertSelectIdentity(), then attach the "select identity" clause to the insert statement.

      Note, if supportsInsertSelectIdentity() == false then the insert-string should be returned without modification.

      Parameters:
      insertString - The insert command
      Returns:
      The insert command with any necessary identity select clause attached.
    • appendIdentitySelectToInsert

      default String appendIdentitySelectToInsert(String identityColumnName, String insertString)
      Provided we supportsInsertSelectIdentity(), then attach the "select identity" clause to the insert statement.

      Note, if supportsInsertSelectIdentity() == false then the insert-string should be returned without modification.

      Parameters:
      identityColumnName - The name of the identity column
      insertString - The insert command
      Returns:
      The insert command with any necessary identity select clause attached.
    • getIdentitySelectString

      String getIdentitySelectString(String table, String column, int type) throws MappingException
      Get the select command to use to retrieve the last generated IDENTITY value for a particular table
      Parameters:
      table - The table into which the insert was done
      column - The PK column.
      type - The Types type code.
      Returns:
      The appropriate select command
      Throws:
      MappingException - If IDENTITY generation is not supported.
    • getIdentityColumnString

      String getIdentityColumnString(int type) throws MappingException
      The syntax used during DDL to define a column as being an IDENTITY of a particular type.
      Parameters:
      type - The Types type code.
      Returns:
      The appropriate DDL fragment.
      Throws:
      MappingException - If IDENTITY generation is not supported.
    • getIdentityInsertString

      String getIdentityInsertString()
      The keyword used to insert a generated value into an identity column (or null). Need if the dialect does not support inserts that specify no column values.
      Returns:
      The appropriate keyword.
    • hasIdentityInsertKeyword

      default boolean hasIdentityInsertKeyword()
      Is there a keyword used to insert a generated value into an identity column.
      Returns:
      true if the dialect does not support inserts that specify no column values.
    • buildGetGeneratedKeysDelegate

      @Deprecated(forRemoval=true, since="6.5") default GetGeneratedKeysDelegate buildGetGeneratedKeysDelegate(PostInsertIdentityPersister persister, Dialect dialect)
      Deprecated, for removal: This API element is subject to removal in a future version.
      The Delegate for dealing with IDENTITY columns using JDBC3 getGeneratedKeys
      Parameters:
      persister - The persister
      dialect - The dialect against which to generate the delegate
      Returns:
      the dialect specific GetGeneratedKeys delegate
    • buildGetGeneratedKeysDelegate

      GetGeneratedKeysDelegate buildGetGeneratedKeysDelegate(EntityPersister persister)
      The delegate for dealing with IDENTITY columns using Statement.getGeneratedKeys().
      Parameters:
      persister - The persister
      Returns:
      the dialect-specific GetGeneratedKeysDelegate