org.apache.cayenne.dba

## Interface PkGenerator

- All Known Implementing Classes:
    DB2PkGenerator, DerbyPkGenerator, FrontBasePkGenerator, H2PkGenerator, IngresPkGenerator, JdbcPkGenerator, MySQLPkGenerator, OpenBasePkGenerator, OraclePkGenerator, PostgresPkGenerator, SybasePkGenerator

      public interface PkGenerator

  Defines methods to support automatic primary key generation.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `createAutoPk(DataNode node, List<DbEntity> dbEntities)` Generates necessary database objects to provide automatic primary key support.
    `List<String>` | `createAutoPkStatements(List<DbEntity> dbEntities)` Returns a list of SQL strings needed to generates database objects to provide automatic primary support for the list of entities.
    `void` | `dropAutoPk(DataNode node, List<DbEntity> dbEntities)` Drops any common database objects associated with automatic primary key generation process.
    `List<String>` | `dropAutoPkStatements(List<DbEntity> dbEntities)` Returns SQL string needed to drop database objects associated with automatic primary key generation.
    `Object` | `generatePk(DataNode dataNode, DbAttribute pk)` Generates a unique and non-repeating primary key for specified PK attribute.
    `void` | `reset()` Resets any cached primary keys forcing generator to go to the database next time id generation is requested.

- - ### Method Detail

    - #### createAutoPk

          void createAutoPk(DataNode node,
                            List<DbEntity> dbEntities)
                     throws Exception

      Generates necessary database objects to provide automatic primary key support.
      Parameters:
        `node` - node that provides access to a DataSource.
        `dbEntities` - a list of entities that require primary key auto-generation support
      Throws:
        `Exception`

    - #### createAutoPkStatements

          List<String> createAutoPkStatements(List<DbEntity> dbEntities)

      Returns a list of SQL strings needed to generates database objects to provide automatic primary support for the list of entities. No actual database operations are performed.

    - #### dropAutoPk

          void dropAutoPk(DataNode node,
                          List<DbEntity> dbEntities)
                   throws Exception

      Drops any common database objects associated with automatic primary key generation process. This may be lookup tables, special stored procedures or sequences.
      Parameters:
        `node` - node that provides access to a DataSource.
        `dbEntities` - a list of entities whose primary key auto-generation support should be dropped.
      Throws:
        `Exception`

    - #### dropAutoPkStatements

          List<String> dropAutoPkStatements(List<DbEntity> dbEntities)

      Returns SQL string needed to drop database objects associated with automatic primary key generation. No actual database operations are performed.

    - #### generatePk

          Object generatePk(DataNode dataNode,
                            DbAttribute pk)
                     throws Exception

      Generates a unique and non-repeating primary key for specified PK attribute.
      Throws:
        `Exception`
      Since:
        3.0

    - #### reset

          void reset()

      Resets any cached primary keys forcing generator to go to the database next time id generation is requested. May not be applicable for all generator implementations.

Copyright © 2001–2023 Apache Cayenne. All rights reserved.