Class StateComparisonVersionStrategy.CustomUpdate
java.lang.Object
org.apache.openjpa.jdbc.sql.RowImpl
org.apache.openjpa.jdbc.meta.strats.StateComparisonVersionStrategy.CustomUpdate
- All Implemented Interfaces:
Cloneable
,Row
,RowManager
- Enclosing class:
- StateComparisonVersionStrategy
public static class StateComparisonVersionStrategy.CustomUpdate
extends RowImpl
implements RowManager
Row implementation we use to pass to versionable mappings so they
can set up the where conditions we need to add to update statements.
- Author:
- Abe White
-
Field Summary
Fields inherited from interface org.apache.openjpa.jdbc.sql.Row
ACTION_DELETE, ACTION_INSERT, ACTION_UNKNOWN, ACTION_UPDATE
-
Method Summary
Modifier and TypeMethodDescriptionvoid
flushAllRows
(Row row) Flush the logical row.void
flushSecondaryRow
(Row row) Flush the secondary row; after flushing the row is available for reuse.getAllRows
(Table table, int action) Return a logical row representing an update that should be made to all rows of the given table.getRow
(Table table, int action, OpenJPAStateManager sm, boolean create) Return the row for the given table and owner object, or null ifcreate
is false and the row has not already been created.getSecondaryRow
(Table table, int action) Return a row for the given secondary table.getSQL
(DBDictionary dict) Return a boolean SQL expression that should be added to the WHERE clause of an UPDATE to test whether the current database record matches our stored version.boolean
protected RowImpl
newInstance
(Column[] cols, int action) Return a new row.void
Set the value of the given column in this row.Methods inherited from class org.apache.openjpa.jdbc.sql.RowImpl
canSet, canSetAny, clearForeignKey, clearRelationId, clone, copyInto, flush, flush, generateSQL, getAction, getColumns, getFailedObject, getParameterCount, getPrimaryKey, getSet, getTable, getTypes, getVals, getWhere, isDependent, isFlushed, isValid, setArray, setAsciiStream, setBigDecimal, setBigInteger, setBinaryStream, setBlob, setBoolean, setByte, setBytes, setCalendar, setChar, setCharacterStream, setClob, setDate, setDate, setDouble, setFailedObject, setFloat, setFlushed, setForeignKey, setForeignKey, setInt, setLocale, setLong, setNull, setNull, setNumber, setObject, setPrimaryKey, setPrimaryKey, setRaw, setRelationId, setShort, setString, setTime, setTimestamp, setValid, whereArray, whereAsciiStream, whereBigDecimal, whereBigInteger, whereBinaryStream, whereBlob, whereBoolean, whereByte, whereBytes, whereCalendar, whereChar, whereCharacterStream, whereClob, whereDate, whereDate, whereDouble, whereFloat, whereForeignKey, whereInt, whereLocale, whereLong, whereNull, whereNumber, whereObject, whereObject, wherePrimaryKey, whereRaw, whereShort, whereString, whereTime, whereTimestamp
-
Method Details
-
getSQL
Return a boolean SQL expression that should be added to the WHERE clause of an UPDATE to test whether the current database record matches our stored version. -
newInstance
Description copied from class:RowImpl
Return a new row.- Overrides:
newInstance
in classRowImpl
-
hasAutoAssignConstraints
public boolean hasAutoAssignConstraints() -
getInserts
-
getUpdates
-
getDeletes
-
getSecondaryUpdates
-
getSecondaryDeletes
-
getAllRowUpdates
-
getAllRowDeletes
-
getRow
Description copied from interface:RowManager
Return the row for the given table and owner object, or null ifcreate
is false and the row has not already been created. The action must be one ofRow.ACTION_INSERT
,Row.ACTION_UPDATE
,Row.ACTION_DELETE
.- Specified by:
getRow
in interfaceRowManager
-
getSecondaryRow
Description copied from interface:RowManager
Return a row for the given secondary table. The action must be one ofRow.ACTION_INSERT
,Row.ACTION_UPDATE
,Row.ACTION_DELETE
. Note that secondary rows are not considered when creating the foreign key dependency graph, with can cause constraint violations when using theUPDATE
action. Only use this action if the secondary row does not have restrict-action foreign keys. Otherwise use both a delete and then an insert to perform the update.- Specified by:
getSecondaryRow
in interfaceRowManager
-
flushSecondaryRow
Description copied from interface:RowManager
Flush the secondary row; after flushing the row is available for reuse. It will retain all previously set values.- Specified by:
flushSecondaryRow
in interfaceRowManager
-
getAllRows
Description copied from interface:RowManager
Return a logical row representing an update that should be made to all rows of the given table. The action must be one ofRow.ACTION_UPDATE
,Row.ACTION_DELETE
.- Specified by:
getAllRows
in interfaceRowManager
-
flushAllRows
Description copied from interface:RowManager
Flush the logical row.- Specified by:
flushAllRows
in interfaceRowManager
-
setObject
Description copied from interface:Row
Set the value of the given column in this row.- Specified by:
setObject
in interfaceRow
- Overrides:
setObject
in classRowImpl
- Parameters:
col
- the column being setval
- the value for the column- Throws:
SQLException
-