Class JdbcTimestampJavaType
- All Implemented Interfaces:
Serializable, BasicJavaType<Date>, JavaType<Date>, TemporalJavaType<Date>, VersionJavaType<Date>
Timestamp handling.- See Also:
- Implementation Specification:
- Unlike most
JavaTypeimplementations, can handle 2 different "domain representations" (most map just a single type): generalDatevalues in addition toTimestampvalues. This capability is shared withJdbcDateJavaTypeandJdbcTimeJavaType.
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from interface JavaType
JavaType.CoercionContext -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final JdbcTimestampJavaTypestatic final DateTimeFormatterIntended for use in reading HQL literals and writing SQL literalsstatic final String -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidappendEncodedString(SqlAppender sb, Date value) Appends the value to the SqlAppender in an encoded format that can be decoded again byJavaType.fromEncodedString(CharSequence, int, int).booleanDetermine if two instances are equalCoerce the given value to this type, if possible.intextractHashCode(Date value) Extract a proper hash code for the given value.protected <X> TemporalJavaType<X> forDatePrecision(TypeConfiguration typeConfiguration) protected <X> TemporalJavaType<X> forTimestampPrecision(TypeConfiguration typeConfiguration) fromEncodedString(CharSequence charSequence, int start, int end) Reads the encoded value from the char sequence start index until the end index and returns the decoded value.fromString(CharSequence string) intgetDefaultSqlPrecision(Dialect dialect, JdbcType jdbcType) The default column precision when this Java type is mapped to a SQL data type which is parametrized by precision, for exampleTypes.DECIMAL.Get the Java type (aTypeobject) described by thisJavaType.The precision represented by this typegetRecommendedJdbcType(JdbcTypeIndicators context) Obtain the "recommended" SQL type descriptor for this Java type.booleanisInstance(Object value) Is the given value an instance of the described type?booleanDetermines if this Java type is wider than the given Java type, that is, if the given type can be safely widened to this type.next(Date current, Long length, Integer precision, Integer scale, SharedSessionContractImplementor session) Increment the version.seed(Long length, Integer precision, Integer scale, SharedSessionContractImplementor session) Generate an initial version.<X> Xunwrap(Date value, Class<X> type, WrapperOptions options) Unwrap an instance of our handled Java type into the requested type.<X> Datewrap(X value, WrapperOptions options) Wrap a value as our handled Java type.Methods inherited from class AbstractTemporalJavaType
forTimePrecision, resolveTypeForPrecision, toStringMethods inherited from class AbstractClassJavaType
extractLoggableRepresentation, getComparator, getJavaTypeClass, getMutabilityPlan, unknownUnwrap, unknownWrapMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface JavaType
createJavaType, extractLoggableRepresentation, fromEncodedString, getCheckCondition, getComparator, getDefaultSqlLength, getDefaultSqlScale, getDefaultValue, getJavaTypeClass, getLongSqlLength, getMutabilityPlan, getReplacement, getTypeName, useObjectEqualsHashCodeMethods inherited from interface TemporalJavaType
isTemporalType
-
Field Details
-
INSTANCE
-
TIMESTAMP_FORMAT
- See Also:
-
LITERAL_FORMATTER
Intended for use in reading HQL literals and writing SQL literals- See Also:
-
-
Constructor Details
-
JdbcTimestampJavaType
public JdbcTimestampJavaType()
-
-
Method Details
-
getJavaType
Description copied from interface:JavaTypeGet the Java type (aTypeobject) described by thisJavaType.- Specified by:
getJavaTypein interfaceJavaType<Date>- Overrides:
getJavaTypein classAbstractClassJavaType<Date>- See Also:
-
getPrecision
Description copied from interface:TemporalJavaTypeThe precision represented by this type- Specified by:
getPrecisionin interfaceTemporalJavaType<Date>
-
isInstance
Description copied from interface:JavaTypeIs the given value an instance of the described type?Usually just
getJavaTypeClass().isInstance(value), but some descriptors need specialized semantics, for example, the descriptors forjava.sql.Date,java.sql.Time, andjava.sql.Timestamp.For
EntityJavaType, this method handles proxies in a semantically correct way, by checking the entity instance underlying the proxy object.- Specified by:
isInstancein interfaceJavaType<Date>
-
cast
Description copied from interface:JavaTypeApply a simple type cast to the given value, without attempting any sort of coercion or wrapping. This method is provided as a convenient way to avoid an unchecked cast to a type variable. UsejavaType.cast(value)instead of(T) valuewherever possible.Usually just
getJavaTypeClass().cast(value), but overridden in some cases as an "optimization". This optimization is almost certainly unnecessary, and might even indeed be harmful, sinceClass.cast()is an intrinsic. -
areEqual
Description copied from interface:JavaTypeDetermine if two instances are equal -
extractHashCode
Description copied from interface:JavaTypeExtract a proper hash code for the given value.- Specified by:
extractHashCodein interfaceJavaType<Date>- Overrides:
extractHashCodein classAbstractClassJavaType<Date>- Parameters:
value- The value for which to extract a hash code.- Returns:
- The extracted hash code.
-
coerce
Description copied from interface:JavaTypeCoerce the given value to this type, if possible.This method differs from
wrap()in that it allows simple, basic, implicit type conversions, and does not requireWrapperOptions. Thewrap()method may be thought of as offering explicitly requested type conversions driven by a choice ofJdbcType.An implementation of this method reports failure in one of two ways, by:
- throwing
CoercionException, or - simply returning the given uncoerced value.
Therefore, this method is declared to return
Object. In case immediate coercion is required, the following idiom may be used:javaType.cast(javaType.coerce(value))
- throwing
-
unwrap
Description copied from interface:JavaTypeUnwrap 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 valueas aLong, we would return something likeLong.valueOf( value.longValue() ).Intended use is during
PreparedStatementbinding. -
wrap
-
isWider
-
toString
-
fromString
- Specified by:
fromStringin interfaceBasicJavaType<Date>- Specified by:
fromStringin interfaceJavaType<Date>
-
appendEncodedString
Description copied from interface:JavaTypeAppends the value to the SqlAppender in an encoded format that can be decoded again byJavaType.fromEncodedString(CharSequence, int, int). Implementers do not need to care about escaping. This is similar toJavaType.toString(Object), with the difference that the aim of this method is encoding to the appender.- Specified by:
appendEncodedStringin interfaceJavaType<Date>
-
fromEncodedString
Description copied from interface:JavaTypeReads the encoded value from the char sequence start index until the end index and returns the decoded value. Implementers do not need to care about escaping. This is similar toJavaType.fromString(CharSequence), with the difference that the aim of this method is decoding from a range within an existing char sequence.- Specified by:
fromEncodedStringin interfaceJavaType<Date>
-
getRecommendedJdbcType
Description copied from interface:BasicJavaTypeObtain the "recommended" SQL type descriptor for this Java type. Often, but not always, the source of this recommendation is the JDBC specification.- Specified by:
getRecommendedJdbcTypein interfaceBasicJavaType<Date>- Specified by:
getRecommendedJdbcTypein interfaceJavaType<Date>- Parameters:
context- Contextual information- Returns:
- The recommended SQL type descriptor
-
forTimestampPrecision
- Overrides:
forTimestampPrecisionin classAbstractTemporalJavaType<Date>
-
forDatePrecision
- Overrides:
forDatePrecisionin classAbstractTemporalJavaType<Date>
-
getDefaultSqlPrecision
Description copied from interface:JavaTypeThe default column precision when this Java type is mapped to a SQL data type which is parametrized by precision, for exampleTypes.DECIMAL.- Specified by:
getDefaultSqlPrecisionin interfaceJavaType<Date>- Returns:
Size.DEFAULT_PRECISIONunless overridden
-