org.hibernate.id.enhanced
Class TableStructure

java.lang.Object
  extended byorg.hibernate.engine.TransactionHelper
      extended byorg.hibernate.id.enhanced.TableStructure
All Implemented Interfaces:
DatabaseStructure

public class TableStructure
extends TransactionHelper
implements DatabaseStructure

Describes a table used to mimic sequence behavior

Author:
Steve Ebersole

Constructor Summary
TableStructure(Dialect dialect, String tableName, String valueColumnName, int initialValue, int incrementSize)
           
 
Method Summary
 AccessCallback buildCallback(SessionImplementor session)
          A callback to be able to get the next value from the underlying structure as needed.
protected  Serializable doWorkInCurrentTransaction(Connection conn, String sql)
          The work to be done
 int getIncrementSize()
          The configured increment size
 String getName()
          The name of the database structure (table or sequence).
 int getTimesAccessed()
          How many times has this structure been accessed through this reference?
 void prepare(Optimizer optimizer)
          Prepare this structure for use. Called sometime after instantiation, but before first use.
 String[] sqlCreateStrings(Dialect dialect)
          Commands needed to create the underlying structures.
 String[] sqlDropStrings(Dialect dialect)
          Commands needed to drop the underlying structures.
 
Methods inherited from class org.hibernate.engine.TransactionHelper
doWorkInNewTransaction
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TableStructure

public TableStructure(Dialect dialect,
                      String tableName,
                      String valueColumnName,
                      int initialValue,
                      int incrementSize)
Method Detail

getName

public String getName()
The name of the database structure (table or sequence).

Specified by:
getName in interface DatabaseStructure
Returns:
The structure name.

getIncrementSize

public int getIncrementSize()
The configured increment size

Specified by:
getIncrementSize in interface DatabaseStructure
Returns:
The configured increment size

getTimesAccessed

public int getTimesAccessed()
How many times has this structure been accessed through this reference?

Specified by:
getTimesAccessed in interface DatabaseStructure
Returns:
The number of accesses.

prepare

public void prepare(Optimizer optimizer)
Prepare this structure for use. Called sometime after instantiation, but before first use.

Specified by:
prepare in interface DatabaseStructure
Parameters:
optimizer - The optimizer being applied to the generator.

buildCallback

public AccessCallback buildCallback(SessionImplementor session)
A callback to be able to get the next value from the underlying structure as needed.

Specified by:
buildCallback in interface DatabaseStructure
Parameters:
session - The session.
Returns:
The next value.

sqlCreateStrings

public String[] sqlCreateStrings(Dialect dialect)
                          throws HibernateException
Commands needed to create the underlying structures.

Specified by:
sqlCreateStrings in interface DatabaseStructure
Parameters:
dialect - The database dialect being used.
Returns:
The creation commands.
Throws:
HibernateException

sqlDropStrings

public String[] sqlDropStrings(Dialect dialect)
                        throws HibernateException
Commands needed to drop the underlying structures.

Specified by:
sqlDropStrings in interface DatabaseStructure
Parameters:
dialect - The database dialect being used.
Returns:
The drop commands.
Throws:
HibernateException

doWorkInCurrentTransaction

protected Serializable doWorkInCurrentTransaction(Connection conn,
                                                  String sql)
                                           throws SQLException
Description copied from class: TransactionHelper
The work to be done

Specified by:
doWorkInCurrentTransaction in class TransactionHelper
Throws:
SQLException