Class StateComparisonVersionStrategy
java.lang.Object
org.apache.openjpa.jdbc.meta.strats.AbstractStrategy
org.apache.openjpa.jdbc.meta.strats.AbstractVersionStrategy
org.apache.openjpa.jdbc.meta.strats.StateComparisonVersionStrategy
- All Implemented Interfaces:
Serializable,Strategy,VersionStrategy
Uses a state image to determine whether concurrency violations take place.
- Author:
- Abe White
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classRow implementation we use to pass to versionable mappings so they can set up the where conditions we need to add to update statements. -
Field Summary
FieldsFields inherited from class org.apache.openjpa.jdbc.meta.strats.AbstractVersionStrategy
vers -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidafterLoad(OpenJPAStateManager sm, JDBCStore store) This method is called after data is loaded into the instance, in case the version indicator works off of a state image.booleancheckVersion(OpenJPAStateManager sm, JDBCStore store, boolean updateVersion) Checks the version of the given state manager with the version stored in memory.intcompareVersion(Object v1, Object v2) voidcustomInsert(OpenJPAStateManager sm, JDBCStore store) This method is for class mappings that take over the insert process, but still want to use this indicator for optimistic locking.customUpdate(OpenJPAStateManager sm, JDBCStore store, Table table, boolean record) This method is for class mappings that take over the update process, but still want to use this indicator for optimistic locking.getAlias()Return the alias of this strategy.voidinsert(OpenJPAStateManager sm, JDBCStore store, RowManager rm) Set values for the mapping into the proper rows.voidmap(boolean adapt) Map the owning mapping using this strategy.voidupdate(OpenJPAStateManager sm, JDBCStore store, RowManager rm) Set values for the mapping into the proper rows.Methods inherited from class org.apache.openjpa.jdbc.meta.strats.AbstractVersionStrategy
getBulkUpdateValues, load, load, select, setVersionMethods inherited from class org.apache.openjpa.jdbc.meta.strats.AbstractStrategy
customDelete, customUpdate, delete, initialize, isCustomDelete, isCustomInsert, isCustomUpdateMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.openjpa.jdbc.meta.Strategy
customDelete, customUpdate, delete, initialize, isCustomDelete, isCustomInsert, isCustomUpdate
-
Field Details
-
ALIAS
- See Also:
-
-
Constructor Details
-
StateComparisonVersionStrategy
public StateComparisonVersionStrategy()
-
-
Method Details
-
getAlias
Description copied from interface:StrategyReturn the alias of this strategy. For custom strategies, return the full class name.- Specified by:
getAliasin interfaceStrategy- Overrides:
getAliasin classAbstractStrategy
-
map
public void map(boolean adapt) Description copied from interface:StrategyMap the owning mapping using this strategy.- Specified by:
mapin interfaceStrategy- Overrides:
mapin classAbstractStrategy- Parameters:
adapt- if true, use the owning mapping's raw mapping info to set its ORM data; if false, ORM data will already be set
-
insert
Description copied from interface:StrategySet values for the mapping into the proper rows. For class mappings, this method will be called only after the corresponding method has been called for all fields of this mapping.- Specified by:
insertin interfaceStrategy- Overrides:
insertin classAbstractStrategy- Throws:
SQLException
-
customInsert
This method is for class mappings that take over the insert process, but still want to use this indicator for optimistic locking.- Specified by:
customInsertin interfaceStrategy- Overrides:
customInsertin classAbstractStrategy- Throws:
SQLException
-
update
Description copied from interface:StrategySet values for the mapping into the proper rows.- Specified by:
updatein interfaceStrategy- Overrides:
updatein classAbstractStrategy- Throws:
SQLException- See Also:
-
customUpdate
public StateComparisonVersionStrategy.CustomUpdate customUpdate(OpenJPAStateManager sm, JDBCStore store, Table table, boolean record) throws SQLException This method is for class mappings that take over the update process, but still want to use this indicator for optimistic locking.- Parameters:
sm- the instance to teststore- store manager contexttable- only state image values in this table will be tested; if the custom mapping uses different updates for different tables, this method can be called multiple times for the multiple tablesrecord- set this parameter to true the last time you call this method, so the indicator can setup the next version of the given state manager- Returns:
- a
StateComparisonVersionStrategy.CustomUpdatewhose getSQL method yields a boolean SQL expression that tests whether the current record is equal to our recorded state image, and whose setParameters method parameterizes the given prepared statement with the values used in the above boolean expression - Throws:
SQLException
-
afterLoad
Description copied from interface:VersionStrategyThis method is called after data is loaded into the instance, in case the version indicator works off of a state image.- Specified by:
afterLoadin interfaceVersionStrategy- Overrides:
afterLoadin classAbstractVersionStrategy
-
checkVersion
public boolean checkVersion(OpenJPAStateManager sm, JDBCStore store, boolean updateVersion) throws SQLException Description copied from interface:VersionStrategyChecks the version of the given state manager with the version stored in memory.- Specified by:
checkVersionin interfaceVersionStrategy- Overrides:
checkVersionin classAbstractVersionStrategy- Returns:
- true if the in-memory version was up-to-date, false otherwise
- Throws:
SQLException
-
compareVersion
- Specified by:
compareVersionin interfaceVersionStrategy- Overrides:
compareVersionin classAbstractVersionStrategy- See Also:
-