Package org.datanucleus.metadata
Class VersionMetaData
java.lang.Object
org.datanucleus.metadata.MetaData
org.datanucleus.metadata.VersionMetaData
- All Implemented Interfaces:
Serializable
Three common strategies for versioning instances are supported by standard metadata.
- State-comparison involves comparing the values in specific columns to determine if the database row was changed.
- Timestamp involves comparing the value in a date-time column in the table. The first time in a transaction the row is updated, the timestamp value is updated to the current time.
- Version-number involves comparing the value in a numeric column in the table. The first time in a transaction the row is updated, the version-number column value is incremented.
There are two forms of version storage.
- Surrogate column - the default in JDO, using the column/columns/index info in this class
- Defined member - the default in JPA. This uses the "memberName" info only
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected ColumnMetaData
Contains the metadata for column.protected String
column nameprotected IndexedValue
Indexed value.protected IndexMetaData
Detail of any indexing of the version column (optional).protected String
Name of the member that contains the version (if not generating a surrogate column).private static final long
protected VersionStrategy
strategy for generating the version.Fields inherited from class org.datanucleus.metadata.MetaData
EXTENSION_CLASS_CREATETIMESTAMP, EXTENSION_CLASS_CREATETIMESTAMP_COLUMN_NAME, EXTENSION_CLASS_CREATEUSER, EXTENSION_CLASS_CREATEUSER_COLUMN_LENGTH, EXTENSION_CLASS_CREATEUSER_COLUMN_NAME, EXTENSION_CLASS_MULTITENANCY_COLUMN_LENGTH, EXTENSION_CLASS_MULTITENANCY_COLUMN_NAME, EXTENSION_CLASS_MULTITENANCY_JDBC_TYPE, EXTENSION_CLASS_MULTITENANT, EXTENSION_CLASS_READ_ONLY, EXTENSION_CLASS_SOFTDELETE, EXTENSION_CLASS_SOFTDELETE_COLUMN_NAME, EXTENSION_CLASS_UPDATETIMESTAMP, EXTENSION_CLASS_UPDATETIMESTAMP_COLUMN_NAME, EXTENSION_CLASS_UPDATEUSER, EXTENSION_CLASS_UPDATEUSER_COLUMN_LENGTH, EXTENSION_CLASS_UPDATEUSER_COLUMN_NAME, EXTENSION_CLASS_VERSION_FIELD_NAME, EXTENSION_CLASS_VIEW_DEFINITION, EXTENSION_CLASS_VIEW_IMPORTS, EXTENSION_INDEX_COLUMN_ORDERING, EXTENSION_MEMBER_CACHEABLE, EXTENSION_MEMBER_CALENDAR_ONE_COLUMN, EXTENSION_MEMBER_CASCADE_ATTACH, EXTENSION_MEMBER_CASCADE_DETACH, EXTENSION_MEMBER_CASCADE_PERSIST, EXTENSION_MEMBER_CASCADE_REFRESH, EXTENSION_MEMBER_COMPARATOR_NAME, EXTENSION_MEMBER_CONTAINER_ALLOW_NULLS, EXTENSION_MEMBER_CREATE_TIMESTAMP, EXTENSION_MEMBER_CREATE_USER, EXTENSION_MEMBER_ENUM_VALUE_GETTER, EXTENSION_MEMBER_IMPLEMENTATION_CLASSES, EXTENSION_MEMBER_INSERTABLE, EXTENSION_MEMBER_KEY_IMPLEMENTATION_CLASSES, EXTENSION_MEMBER_LIST_ORDERING, EXTENSION_MEMBER_RELATION_DISCRIM_COLUMN, EXTENSION_MEMBER_RELATION_DISCRIM_PK, EXTENSION_MEMBER_RELATION_DISCRIM_VALUE, EXTENSION_MEMBER_STRATEGY_WHEN_NOTNULL, EXTENSION_MEMBER_TYPE_CONVERTER_DISABLED, EXTENSION_MEMBER_TYPE_CONVERTER_NAME, EXTENSION_MEMBER_UPDATE_TIMESTAMP, EXTENSION_MEMBER_UPDATE_USER, EXTENSION_MEMBER_UPDATEABLE, EXTENSION_MEMBER_VALUE_IMPLEMENTATION_CLASSES, EXTENSION_VERSION_NUMBER_INITIAL_VALUE, extensions, metaDataState, parent, VENDOR_NAME
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal ColumnMetaData
final IndexMetaData
final String
final VersionStrategy
void
Initialisation method.Method to create a new ColumnMetaData, add it, and return it.Method to create a new Index metadata, add it, and return it.void
setColumnMetaData
(ColumnMetaData columnMetaData) Mutator for column MetaData.setColumnName
(String columnName) setIndexed
(IndexedValue indexed) final void
setIndexMetaData
(IndexMetaData indexMetaData) setMemberName
(String memberName) setStrategy
(String strategy) setStrategy
(VersionStrategy strategy) toString()
Methods inherited from class org.datanucleus.metadata.MetaData
addExtension, addExtensions, getExtensions, getMetaDataManager, getNoOfExtensions, getParent, getValueForExtension, getValuesForExtension, hasExtension, isInitialised, isPopulated, isUsed, removeExtension, setExtensions, setInitialised, setParent, setPopulated, setUsed
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
versionStrategy
strategy for generating the version. -
columnName
column name -
columnMetaData
Contains the metadata for column. -
indexMetaData
Detail of any indexing of the version column (optional). -
indexed
Indexed value. -
memberName
Name of the member that contains the version (if not generating a surrogate column).
-
-
Constructor Details
-
VersionMetaData
public VersionMetaData()
-
-
Method Details
-
initialise
Initialisation method. This should be called AFTER using the populate method if you are going to use populate. It creates the internal convenience arrays etc needed for normal operation.- Overrides:
initialise
in classMetaData
-
getColumnMetaData
-
setColumnMetaData
Mutator for column MetaData.- Parameters:
columnMetaData
- The column MetaData to set.
-
newColumnMetaData
Method to create a new ColumnMetaData, add it, and return it.- Returns:
- The Column metadata
-
getStrategy
-
setStrategy
-
setStrategy
-
getIndexMetaData
-
setIndexMetaData
-
newIndexMetaData
Method to create a new Index metadata, add it, and return it.- Returns:
- The Index metadata
-
getColumnName
-
setColumnName
-
getIndexed
-
setIndexed
-
getMemberName
-
setMemberName
-
toString
-