org.hibernate.id.enhanced

Class TableStructure

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.
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

doWorkInCurrentTransaction, doWorkInNewTransaction

Constructor Details

TableStructure

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

Method Details

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.

doWorkInCurrentTransaction

protected Serializable doWorkInCurrentTransaction(Connection conn,
                                                  String sql)
            throws SQLException
The work to be done
Overrides:
doWorkInCurrentTransaction in interface TransactionHelper

getIncrementSize

public int getIncrementSize()
The configured increment size
Specified by:
getIncrementSize in interface DatabaseStructure
Returns:
The configured increment size

getName

public String getName()
The name of the database structure (table or sequence).
Specified by:
getName in interface DatabaseStructure
Returns:
The structure name.

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.

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.

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.