org.apache.cayenne.dba.postgres

## Class PostgresPkGenerator

- java.lang.Object
- - org.apache.cayenne.dba.JdbcPkGenerator
  - - org.apache.cayenne.dba.oracle.OraclePkGenerator
    - - org.apache.cayenne.dba.postgres.PostgresPkGenerator

- All Implemented Interfaces:
    PkGenerator

      public class PostgresPkGenerator
      extends OraclePkGenerator

  Default PK generator for PostgreSQL that uses sequences for PK generation.

- - ### Field Summary

    - ### Fields inherited from class org.apache.cayenne.dba.JdbcPkGenerator

      `adapter, DEFAULT_PK_CACHE_SIZE, pkCache, pkCacheSize, pkStartValue`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `PostgresPkGenerator(JdbcAdapter adapter)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected String` | `createSequenceString(DbEntity ent)`
    `protected List<String>` | `getExistingSequences(DataNode node)` Fetches a list of existing sequences that might match Cayenne generated ones.
    `protected long` | `longPkFromDatabase(DataNode node, DbEntity entity)` Generates primary key by calling Oracle sequence corresponding to the `dbEntity`.

    - ### Methods inherited from class org.apache.cayenne.dba.oracle.OraclePkGenerator

      `createAutoPk, createAutoPkStatements, dropAutoPk, dropAutoPkStatements, dropSequenceString, pkCacheSize, sequenceName, stripSchemaName`

    - ### Methods inherited from class org.apache.cayenne.dba.JdbcPkGenerator

      `autoPkTableExists, dropAutoPkString, generatePk, getAdapter, getPkCacheSize, pkCreateString, pkDeleteString, pkSelectString, pkTableCreateString, pkUpdateString, reset, runUpdate, setPkCacheSize`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### PostgresPkGenerator

          protected PostgresPkGenerator(JdbcAdapter adapter)

  - ### Method Detail

    - #### createSequenceString

          protected String createSequenceString(DbEntity ent)

      Overrides:
        `createSequenceString` in class `OraclePkGenerator`

    - #### longPkFromDatabase

          protected long longPkFromDatabase(DataNode node,
                                DbEntity entity)
                                     throws Exception

      Description copied from class: `OraclePkGenerator`
      Generates primary key by calling Oracle sequence corresponding to the `dbEntity`. Executed SQL looks like this:

             SELECT pk_table_name.nextval FROM DUAL

      Overrides:
        `longPkFromDatabase` in class `OraclePkGenerator`
      Throws:
        `Exception`
      Since:
        3.0

    - #### getExistingSequences

          protected List<String> getExistingSequences(DataNode node)
                                               throws SQLException

      Fetches a list of existing sequences that might match Cayenne generated ones.
      Overrides:
        `getExistingSequences` in class `OraclePkGenerator`
      Throws:
        `SQLException`

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