Class RowVersionJavaType
- java.lang.Object
-
- org.hibernate.type.descriptor.java.AbstractClassJavaType<byte[]>
-
- org.hibernate.type.descriptor.java.RowVersionJavaType
-
- All Implemented Interfaces:
Serializable
,BasicJavaType<byte[]>
,JavaType<byte[]>
,VersionJavaType<byte[]>
public class RowVersionJavaType extends AbstractClassJavaType<byte[]> implements VersionJavaType<byte[]>
Descriptor forbyte[]
handling specifically used for specifically for entity versions/timestamps.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.hibernate.type.descriptor.java.JavaType
JavaType.CoercionContext
-
-
Field Summary
Fields Modifier and Type Field Description static RowVersionJavaType
INSTANCE
-
Constructor Summary
Constructors Constructor Description RowVersionJavaType()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
areEqual(byte[] one, byte[] another)
Determine if two instances are equalint
extractHashCode(byte[] bytes)
Extract a proper hash code for the given value.String
extractLoggableRepresentation(byte[] value)
Extract a loggable representation of the given value.byte[]
fromString(CharSequence string)
byte[]
next(byte[] current, Long length, Integer precision, Integer scale, SharedSessionContractImplementor session)
Increment the version.byte[]
seed(Long length, Integer precision, Integer scale, SharedSessionContractImplementor session)
Generate an initial version.String
toString(byte[] bytes)
<X> X
unwrap(byte[] value, Class<X> type, WrapperOptions options)
Unwrap an instance of our handled Java type into the requested type.<X> byte[]
wrap(X value, WrapperOptions options)
Wrap a value as our handled Java type.-
Methods inherited from class org.hibernate.type.descriptor.java.AbstractClassJavaType
getComparator, getJavaType, getJavaTypeClass, getMutabilityPlan, unknownUnwrap, unknownWrap
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.hibernate.type.descriptor.java.BasicJavaType
getRecommendedJdbcType
-
Methods inherited from interface org.hibernate.type.descriptor.java.JavaType
appendEncodedString, coerce, createJavaType, createJavaType, fromEncodedString, getComparator, getDefaultSqlLength, getDefaultSqlPrecision, getDefaultSqlScale, getDefaultValue, getJavaType, getJavaTypeClass, getLongSqlLength, getMutabilityPlan, getReplacement, isInstance, isTemporalType, isWider
-
-
-
-
Field Detail
-
INSTANCE
public static final RowVersionJavaType INSTANCE
-
-
Method Detail
-
areEqual
public boolean areEqual(byte[] one, byte[] another)
Description copied from interface:JavaType
Determine if two instances are equal- Specified by:
areEqual
in interfaceJavaType<byte[]>
- Overrides:
areEqual
in classAbstractClassJavaType<byte[]>
- Parameters:
one
- One instanceanother
- The other instance- Returns:
- True if the two are considered equal; false otherwise.
-
extractHashCode
public int extractHashCode(byte[] bytes)
Description copied from interface:JavaType
Extract a proper hash code for the given value.- Specified by:
extractHashCode
in interfaceJavaType<byte[]>
- Overrides:
extractHashCode
in classAbstractClassJavaType<byte[]>
- Parameters:
bytes
- The value for which to extract a hash code.- Returns:
- The extracted hash code.
-
extractLoggableRepresentation
public String extractLoggableRepresentation(byte[] value)
Description copied from interface:JavaType
Extract a loggable representation of the given value.- Specified by:
extractLoggableRepresentation
in interfaceJavaType<byte[]>
- Overrides:
extractLoggableRepresentation
in classAbstractClassJavaType<byte[]>
- Parameters:
value
- The value for which to extract a loggable representation.- Returns:
- The loggable representation
-
fromString
public byte[] fromString(CharSequence string)
- Specified by:
fromString
in interfaceBasicJavaType<byte[]>
- Specified by:
fromString
in interfaceJavaType<byte[]>
-
unwrap
public <X> X unwrap(byte[] value, Class<X> type, WrapperOptions options)
Description copied from interface:JavaType
Unwrap an instance of our handled Java type into the requested type.As an example, if this is a
JavaType<Integer>
and we are asked to unwrap theInteger value
as aLong
, we would return something likeLong.valueOf( value.longValue() )
.Intended use is during
PreparedStatement
binding.
-
wrap
public <X> byte[] wrap(X value, WrapperOptions options)
Description copied from interface:JavaType
Wrap a value as our handled Java type.Intended use is during
ResultSet
extraction.
-
seed
public byte[] seed(Long length, Integer precision, Integer scale, SharedSessionContractImplementor session)
Description copied from interface:VersionJavaType
Generate an initial version.- Specified by:
seed
in interfaceVersionJavaType<byte[]>
- Parameters:
length
- The length of the typeprecision
- The precision of the typescale
- The scale of the typesession
- The session from which this request originates.- Returns:
- an instance of the type
-
next
public byte[] next(byte[] current, Long length, Integer precision, Integer scale, SharedSessionContractImplementor session)
Description copied from interface:VersionJavaType
Increment the version.- Specified by:
next
in interfaceVersionJavaType<byte[]>
- Parameters:
current
- the current versionlength
- The length of the typeprecision
- The precision of the typescale
- The scale of the typesession
- The session from which this request originates.- Returns:
- an instance of the type
-
-