|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.avalon.framework.logger.AbstractLogEnabled org.apache.cocoon.components.modules.database.AbstractAutoIncrementModule org.apache.cocoon.components.modules.database.ManualAutoIncrementModule
public class ManualAutoIncrementModule
Abstraction layer to encapsulate different DBMS behaviour for autoincrement columns. Here: manual mode The new value is determined by doing a "select max(column)+1 from table" query. With transactions and correct isolation levels, this should to the trick almost everywhere. Note however, that the above query does not prevent a parallel transaction to try to insert a row with the same ID since it requires only shared locks. C.f. "Phantom Problem"
Field Summary |
---|
Fields inherited from class org.apache.cocoon.components.modules.database.AbstractAutoIncrementModule |
---|
settings |
Fields inherited from interface org.apache.cocoon.components.modules.database.AutoIncrementModule |
---|
ROLE |
Constructor Summary | |
---|---|
ManualAutoIncrementModule()
|
Method Summary | |
---|---|
Object |
getPostValue(Configuration tableConf,
Configuration columnConf,
Configuration modenConf,
Connection conn,
Statement stmt,
Map objectModel)
Return key attribute value of last inserted row. |
Object |
getPreValue(Configuration tableConf,
Configuration columnConf,
Configuration modeConf,
Connection conn,
Map objectModel)
Provide the value for the key attribute column. |
protected String |
getSelectQuery(String tableName,
Configuration entry)
|
String |
getSubquery(Configuration tableConf,
Configuration columnConf,
Configuration modeConf)
Provide subquery string for the key attribute column. |
boolean |
includeAsValue()
Boolean whether the key attribute needs to be included in the insert query as an attribute value (no subquery). |
boolean |
includeInQuery()
Boolean whether the key attribute column needs to be included in the insert query. |
protected void |
setSelectQuery(String tableName,
Configuration entry)
Set the String representation of the MaxID lookup statement. |
Methods inherited from class org.apache.cocoon.components.modules.database.AbstractAutoIncrementModule |
---|
configure, dispose |
Methods inherited from class org.apache.avalon.framework.logger.AbstractLogEnabled |
---|
enableLogging, getLogger, setupLogger, setupLogger, setupLogger |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public ManualAutoIncrementModule()
Method Detail |
---|
public Object getPostValue(Configuration tableConf, Configuration columnConf, Configuration modenConf, Connection conn, Statement stmt, Map objectModel) throws SQLException, ConfigurationException
AutoIncrementModule
getPostValue
in interface AutoIncrementModule
tableConf
- Table's configuration from resource description.columnConf
- column's configuration from resource description.modenConf
- this mode's configuration from resource description.conn
- Connectionstmt
- Statement that was executed to insert the last row.objectModel
- The objectModel
SQLException
ConfigurationException
public boolean includeInQuery()
AutoIncrementModule
includeInQuery
in interface AutoIncrementModule
public boolean includeAsValue()
AutoIncrementModule
includeAsValue
in interface AutoIncrementModule
public Object getPreValue(Configuration tableConf, Configuration columnConf, Configuration modeConf, Connection conn, Map objectModel) throws SQLException, ConfigurationException
AutoIncrementModule
getPreValue
in interface AutoIncrementModule
tableConf
- Table's configuration from resource description.columnConf
- column's configuration from resource description.modeConf
- this mode's configuration from resource description.conn
- ConnectionobjectModel
- The objectModel
SQLException
ConfigurationException
public String getSubquery(Configuration tableConf, Configuration columnConf, Configuration modeConf) throws ConfigurationException
AutoIncrementModule
getSubquery
in interface AutoIncrementModule
ConfigurationException
protected final void setSelectQuery(String tableName, Configuration entry) throws ConfigurationException
ConfigurationException
protected final String getSelectQuery(String tableName, Configuration entry) throws ConfigurationException
ConfigurationException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |