Class JdbcTimestampJavaType
- java.lang.Object
-
- org.hibernate.type.descriptor.java.AbstractClassJavaType<T>
-
- org.hibernate.type.descriptor.java.AbstractTemporalJavaType<Date>
-
- org.hibernate.type.descriptor.java.JdbcTimestampJavaType
-
- All Implemented Interfaces:
Serializable,BasicJavaType<Date>,JavaType<Date>,TemporalJavaType<Date>,VersionJavaType<Date>
public class JdbcTimestampJavaType extends AbstractTemporalJavaType<Date> implements VersionJavaType<Date>
Descriptor forTimestamphandling.- See Also:
- Serialized Form
- "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 Classes Modifier and Type Class Description static classJdbcTimestampJavaType.TimestampMutabilityPlan-
Nested classes/interfaces inherited from interface org.hibernate.type.descriptor.java.JavaType
JavaType.CoercionContext
-
-
Field Summary
Fields Modifier and Type Field Description static JdbcTimestampJavaTypeINSTANCEstatic DateTimeFormatterLITERAL_FORMATTERIntended for use in reading HQL literals and writing SQL literalsstatic StringTIMESTAMP_FORMAT
-
Constructor Summary
Constructors Constructor Description JdbcTimestampJavaType()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanareEqual(Date one, Date another)Determine if two instances are equalDatecoerce(Object value, JavaType.CoercionContext coercionContext)intextractHashCode(Date value)Extract a proper hash code for this value.protected <X> TemporalJavaType<X>forDatePrecision(TypeConfiguration typeConfiguration)protected <X> TemporalJavaType<X>forTimestampPrecision(TypeConfiguration typeConfiguration)DatefromString(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.TemporalTypegetPrecision()The precision represented by this typeJdbcTypegetRecommendedJdbcType(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? Generally this comes down togetJavaTypeClass().isInstance(), though some descriptors (mainly the java.sql.Date, Time and Timestamp descriptors) might need different semanticsbooleanisWider(JavaType<?> javaType)Returns whether this java type is wider than the given type i.e.Datenext(Date current, Long length, Integer precision, Integer scale, SharedSessionContractImplementor session)Increment the version.Dateseed(Long length, Integer precision, Integer scale, SharedSessionContractImplementor session)Generate an initial version.StringtoString(Date value)Objectunwrap(Date value, Class 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 org.hibernate.type.descriptor.java.AbstractTemporalJavaType
forTimePrecision, resolveTypeForPrecision, toString
-
Methods inherited from class org.hibernate.type.descriptor.java.AbstractClassJavaType
extractLoggableRepresentation, getComparator, getJavaType, getJavaTypeClass, getMutabilityPlan, unknownUnwrap, unknownWrap
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.hibernate.type.descriptor.java.JavaType
createJavaType, createJavaType, extractLoggableRepresentation, getCheckCondition, getComparator, getDefaultSqlLength, getDefaultSqlScale, getDefaultValue, getJavaType, getJavaTypeClass, getLongSqlLength, getMutabilityPlan, getReplacement
-
-
-
-
Field Detail
-
INSTANCE
public static final JdbcTimestampJavaType INSTANCE
-
TIMESTAMP_FORMAT
public static final String TIMESTAMP_FORMAT
- See Also:
- Constant Field Values
-
LITERAL_FORMATTER
public static final DateTimeFormatter LITERAL_FORMATTER
Intended for use in reading HQL literals and writing SQL literals- See Also:
TIMESTAMP_FORMAT
-
-
Method Detail
-
getPrecision
public TemporalType getPrecision()
Description copied from interface:TemporalJavaTypeThe precision represented by this type- Specified by:
getPrecisionin interfaceTemporalJavaType<Date>
-
isInstance
public boolean isInstance(Object value)
Description copied from interface:JavaTypeIs the given value an instance of the described type? Generally this comes down togetJavaTypeClass().isInstance(), though some descriptors (mainly the java.sql.Date, Time and Timestamp descriptors) might need different semantics- Specified by:
isInstancein interfaceJavaType<Date>
-
areEqual
public boolean areEqual(Date one, Date another)
Description copied from interface:JavaTypeDetermine if two instances are equal
-
extractHashCode
public int extractHashCode(Date value)
Description copied from interface:JavaTypeExtract a proper hash code for this 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
public Date coerce(Object value, JavaType.CoercionContext coercionContext)
-
unwrap
public Object unwrap(Date value, Class type, WrapperOptions options)
Description copied from interface:JavaTypeUnwrap an instance of our handled Java type into the requested type. As an example, if this is aJavaType<Integer>and we are asked to unwrap theInteger valueas aLongwe would return something likeLong.valueOf( value.longValue() ). Intended use is duringPreparedStatementbinding.
-
wrap
public <X> Date wrap(X value, WrapperOptions options)
Description copied from interface:JavaTypeWrap a value as our handled Java type. Intended use is duringResultSetextraction.
-
isWider
public boolean isWider(JavaType<?> javaType)
Description copied from interface:JavaTypeReturns whether this java type is wider than the given type i.e. if the given type can be widened to this java type.
-
fromString
public Date fromString(CharSequence string)
- Specified by:
fromStringin interfaceBasicJavaType<Date>- Specified by:
fromStringin interfaceJavaType<Date>
-
getRecommendedJdbcType
public JdbcType getRecommendedJdbcType(JdbcTypeIndicators context)
Description copied from interface:JavaTypeObtain the "recommended" SQL type descriptor for this Java type. The recommended aspect comes from the JDBC spec (mostly).- Specified by:
getRecommendedJdbcTypein interfaceBasicJavaType<Date>- Specified by:
getRecommendedJdbcTypein interfaceJavaType<Date>- Parameters:
context- Contextual information- Returns:
- The recommended SQL type descriptor
-
forTimestampPrecision
protected <X> TemporalJavaType<X> forTimestampPrecision(TypeConfiguration typeConfiguration)
- Overrides:
forTimestampPrecisionin classAbstractTemporalJavaType<Date>
-
forDatePrecision
protected <X> TemporalJavaType<X> forDatePrecision(TypeConfiguration typeConfiguration)
- Overrides:
forDatePrecisionin classAbstractTemporalJavaType<Date>
-
getDefaultSqlPrecision
public int getDefaultSqlPrecision(Dialect dialect, JdbcType jdbcType)
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
-
next
public Date next(Date current, Long length, Integer precision, Integer scale, SharedSessionContractImplementor session)
Description copied from interface:VersionJavaTypeIncrement the version.- Specified by:
nextin interfaceVersionJavaType<Date>- 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
-
seed
public Date seed(Long length, Integer precision, Integer scale, SharedSessionContractImplementor session)
Description copied from interface:VersionJavaTypeGenerate an initial version.- Specified by:
seedin interfaceVersionJavaType<Date>- 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
-
-