## org.hibernate.id.insert
Class AbstractSelectingDelegate

    java.lang.Object
      org.hibernate.id.insert.AbstractSelectingDelegate

All Implemented Interfaces:
  InsertGeneratedIdentifierDelegate

Direct Known Subclasses:
  IdentityGenerator.BasicDelegate, SelectGenerator.SelectGeneratorDelegate

    public abstract class AbstractSelectingDelegate

extends Object
implements InsertGeneratedIdentifierDelegate

Abstract InsertGeneratedIdentifierDelegate implementation where the underlying strategy requires an subsequent select after the insert to determine the generated identifier.

Author:
  Steve Ebersole

Constructor Summary
`protected` `AbstractSelectingDelegate(PostInsertIdentityPersister persister)`

Method Summary
`protected void` `bindParameters(SessionImplementor session, PreparedStatement ps, Object entity)` Bind any required parameter values into the SQL command `getSelectSQL()`.
`protected abstract Serializable` `getResult(SessionImplementor session, ResultSet rs, Object entity)` Extract the generated key value from the given result set.
`protected abstract String` `getSelectSQL()` Get the SQL statement to be used to retrieve generated key values.
`Serializable` `performInsert(String insertSQL, SessionImplementor session, Binder binder)` Perform the indicated insert SQL statement and determine the identifier value generated.

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

Methods inherited from interface org.hibernate.id.insert.InsertGeneratedIdentifierDelegate
`prepareIdentifierGeneratingInsert`

Constructor Detail

### AbstractSelectingDelegate

    protected AbstractSelectingDelegate(PostInsertIdentityPersister persister)

Method Detail

### performInsert

    public final Serializable performInsert(String insertSQL,
                                            SessionImplementor session,
                                            Binder binder)

  Description copied from interface: `InsertGeneratedIdentifierDelegate`
  Perform the indicated insert SQL statement and determine the identifier value generated.

  Specified by:
    `performInsert` in interface `InsertGeneratedIdentifierDelegate`
  Parameters:
    `insertSQL` - The INSERT statement string
    `session` - The session in which we are operating
    `binder` - The param binder
  Returns:
    The generated identifier value.

### getSelectSQL

    protected abstract String getSelectSQL()

  Get the SQL statement to be used to retrieve generated key values.

  Returns:
    The SQL command string

### bindParameters

    protected void bindParameters(SessionImplementor session,
                                  PreparedStatement ps,
                                  Object entity)
                           throws SQLException

  Bind any required parameter values into the SQL command `getSelectSQL()`.

  Parameters:
    `session` - The session
    `ps` - The prepared `SQL` command
    `entity` - The entity being saved.
  Throws:
    `SQLException`

### getResult

    protected abstract Serializable getResult(SessionImplementor session,
                                              ResultSet rs,
                                              Object entity)
                                       throws SQLException

  Extract the generated key value from the given result set.

  Parameters:
    `session` - The session
    `rs` - The result set containing the generated primay key values.
    `entity` - The entity being saved.
  Returns:
    The generated identifier
  Throws:
    `SQLException`

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