## org.hibernate.id
Class TableGenerator

    java.lang.Object
      org.hibernate.id.TableGenerator

All Implemented Interfaces:
  Configurable, IdentifierGenerator, PersistentIdentifierGenerator

Direct Known Subclasses:
  TableHiLoGenerator

    public class TableGenerator

extends Object
implements PersistentIdentifierGenerator, Configurable

An `IdentifierGenerator` that uses a database table to store the last generated value. It is not intended that applications use this strategy directly. However, it may be used to build other (efficient) strategies. The returned type is any supported by `IntegralDataTypeHolder`

The value MUST be fetched in a separate transaction from that of the main `session` transaction so the generator must be able to obtain a new connection and commit it. Hence this implementation may only be used when Hibernate is fetching connections, not when the user is supplying connections.

Again, the return types supported here are any of the ones supported by `IntegralDataTypeHolder`. This is new as of 3.5. Prior to that this generator only returned `Integer` values.

Mapping parameters supported: table, column

See Also:
  `TableHiLoGenerator`

Field Summary
`static String` `COLUMN` The column parameter
`static String` `DEFAULT_COLUMN_NAME` Default column name
`static String` `DEFAULT_TABLE_NAME` Default table name
`static String` `TABLE` The table parameter

Fields inherited from interface org.hibernate.id.PersistentIdentifierGenerator
`CATALOG, IDENTIFIER_NORMALIZER, PK, SCHEMA, TABLES`

Fields inherited from interface org.hibernate.id.IdentifierGenerator
`ENTITY_NAME`

Constructor Summary
`TableGenerator()`

Method Summary
`protected IntegralDataTypeHolder` `buildHolder()`
`void` `configure(Type type, Properties params, Dialect dialect)` Configure this instance, given the value of parameters specified by the user as `<param>` elements.
`Serializable` `generate(SessionImplementor session, Object object)` Generate a new identifier.
`protected IntegralDataTypeHolder` `generateHolder(SessionImplementor session)`
`Object` `generatorKey()` Return a key unique to the underlying database objects.
`String[]` `sqlCreateStrings(Dialect dialect)` The SQL required to create the underlying database objects.
`String[]` `sqlDropStrings(Dialect dialect)` The SQL required to remove the underlying database objects.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### COLUMN

    public static final String COLUMN

  The column parameter

  See Also:
    Constant Field Values

### DEFAULT_COLUMN_NAME

    public static final String DEFAULT_COLUMN_NAME

  Default column name

  See Also:
    Constant Field Values

### TABLE

    public static final String TABLE

  The table parameter

  See Also:
    Constant Field Values

### DEFAULT_TABLE_NAME

    public static final String DEFAULT_TABLE_NAME

  Default table name

  See Also:
    Constant Field Values

Constructor Detail

### TableGenerator

    public TableGenerator()

Method Detail

### configure

    public void configure(Type type,
                          Properties params,
                          Dialect dialect)

  Description copied from interface: `Configurable`
  Configure this instance, given the value of parameters specified by the user as `<param>` elements. This method is called just once, following instantiation.

  Specified by:
    `configure` in interface `Configurable`
    `params` - param values, keyed by parameter name

### generate

    public Serializable generate(SessionImplementor session,
                                 Object object)

  Description copied from interface: `IdentifierGenerator`
  Generate a new identifier.

  Specified by:
    `generate` in interface `IdentifierGenerator`
    `object` - the entity or toplevel collection for which the id is being generated
  Returns:
    a new identifier

### generateHolder

    protected IntegralDataTypeHolder generateHolder(SessionImplementor session)

### sqlCreateStrings

    public String[] sqlCreateStrings(Dialect dialect)
                              throws HibernateException

  Description copied from interface: `PersistentIdentifierGenerator`
  The SQL required to create the underlying database objects.

  Specified by:
    `sqlCreateStrings` in interface `PersistentIdentifierGenerator`
  Parameters:
    `dialect` - The dialect against which to generate the create command(s)
  Returns:
    The create command(s)
  Throws:
    `HibernateException` - problem creating the create command(s)

### sqlDropStrings

    public String[] sqlDropStrings(Dialect dialect)

  Description copied from interface: `PersistentIdentifierGenerator`
  The SQL required to remove the underlying database objects.

  Specified by:
    `sqlDropStrings` in interface `PersistentIdentifierGenerator`
  Parameters:
    `dialect` - The dialect against which to generate the drop command(s)
  Returns:
    The drop command(s)

### generatorKey

    public Object generatorKey()

  Description copied from interface: `PersistentIdentifierGenerator`
  Return a key unique to the underlying database objects. Prevents us from trying to create/remove them multiple times.

  Specified by:
    `generatorKey` in interface `PersistentIdentifierGenerator`
  Returns:
    Object an identifying key for this generator

### buildHolder

    protected IntegralDataTypeHolder buildHolder()

Copyright © 2001-2012 Red Hat, Inc. All Rights Reserved.