Package org.datanucleus.metadata
Class VersionMetaData
- java.lang.Object
-
- org.datanucleus.metadata.MetaData
-
- org.datanucleus.metadata.VersionMetaData
-
- All Implemented Interfaces:
Serializable
public class VersionMetaData extends MetaData
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:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected ColumnMetaData
columnMetaData
Contains the metadata for column.protected String
columnName
column nameprotected IndexedValue
indexed
Indexed value.protected IndexMetaData
indexMetaData
Detail of any indexing of the version column (optional).protected String
memberName
Name of the member that contains the version (if not generating a surrogate column).protected VersionStrategy
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 Constructor Description VersionMetaData()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ColumnMetaData
getColumnMetaData()
String
getColumnName()
IndexedValue
getIndexed()
IndexMetaData
getIndexMetaData()
String
getMemberName()
VersionStrategy
getStrategy()
void
initialise(ClassLoaderResolver clr)
Initialisation method.ColumnMetaData
newColumnMetaData()
Method to create a new ColumnMetaData, add it, and return it.IndexMetaData
newIndexMetaData()
Method to create a new Index metadata, add it, and return it.void
setColumnMetaData(ColumnMetaData columnMetaData)
Mutator for column MetaData.VersionMetaData
setColumnName(String columnName)
VersionMetaData
setIndexed(IndexedValue indexed)
void
setIndexMetaData(IndexMetaData indexMetaData)
VersionMetaData
setMemberName(String memberName)
VersionMetaData
setStrategy(String strategy)
VersionMetaData
setStrategy(VersionStrategy strategy)
String
toString()
-
Methods inherited from class org.datanucleus.metadata.MetaData
addExtension, addExtensions, getExtensions, getMetaDataManager, getNoOfExtensions, getParent, getValueForExtension, getValuesForExtension, hasExtension, isInitialised, isPopulated, isUsed, removeExtension, setExtensions, setParent
-
-
-
-
Field Detail
-
versionStrategy
protected VersionStrategy versionStrategy
strategy for generating the version.
-
columnName
protected String columnName
column name
-
columnMetaData
protected ColumnMetaData columnMetaData
Contains the metadata for column.
-
indexMetaData
protected IndexMetaData indexMetaData
Detail of any indexing of the version column (optional).
-
indexed
protected IndexedValue indexed
Indexed value.
-
memberName
protected String memberName
Name of the member that contains the version (if not generating a surrogate column).
-
-
Method Detail
-
initialise
public void initialise(ClassLoaderResolver clr)
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
public final ColumnMetaData getColumnMetaData()
-
setColumnMetaData
public void setColumnMetaData(ColumnMetaData columnMetaData)
Mutator for column MetaData.- Parameters:
columnMetaData
- The column MetaData to set.
-
newColumnMetaData
public ColumnMetaData newColumnMetaData()
Method to create a new ColumnMetaData, add it, and return it.- Returns:
- The Column metadata
-
getStrategy
public final VersionStrategy getStrategy()
-
setStrategy
public VersionMetaData setStrategy(VersionStrategy strategy)
-
setStrategy
public VersionMetaData setStrategy(String strategy)
-
getIndexMetaData
public final IndexMetaData getIndexMetaData()
-
setIndexMetaData
public final void setIndexMetaData(IndexMetaData indexMetaData)
-
newIndexMetaData
public IndexMetaData newIndexMetaData()
Method to create a new Index metadata, add it, and return it.- Returns:
- The Index metadata
-
getColumnName
public String getColumnName()
-
setColumnName
public VersionMetaData setColumnName(String columnName)
-
getIndexed
public IndexedValue getIndexed()
-
setIndexed
public VersionMetaData setIndexed(IndexedValue indexed)
-
getMemberName
public final String getMemberName()
-
setMemberName
public VersionMetaData setMemberName(String memberName)
-
-