Class JdbcDateJavaType
- java.lang.Object
-
- org.hibernate.type.descriptor.java.AbstractClassJavaType<T>
-
- org.hibernate.type.descriptor.java.AbstractTemporalJavaType<Date>
-
- org.hibernate.type.descriptor.java.JdbcDateJavaType
-
- All Implemented Interfaces:
Serializable
,BasicJavaType<Date>
,JavaType<Date>
,TemporalJavaType<Date>
public class JdbcDateJavaType extends AbstractTemporalJavaType<Date>
Descriptor forDate
handling.- See Also:
- Serialized Form
- Implementation Specification:
- Unlike most
JavaType
implementations, can handle 2 different "domain representations" (most map just a single type): generalDate
values in addition toDate
values. This capability is shared withJdbcTimeJavaType
andJdbcTimestampJavaType
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
JdbcDateJavaType.DateMutabilityPlan
-
Nested classes/interfaces inherited from interface org.hibernate.type.descriptor.java.JavaType
JavaType.CoercionContext
-
-
Field Summary
Fields Modifier and Type Field Description static String
DATE_FORMAT
static JdbcDateJavaType
INSTANCE
static DateTimeFormatter
LITERAL_FORMATTER
Intended for use in reading HQL literals and writing SQL literals
-
Constructor Summary
Constructors Constructor Description JdbcDateJavaType()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
appendEncodedString(SqlAppender sb, Date value)
Appends the value to the SqlAppender in an encoded format that can be decoded again byJavaType.fromEncodedString(CharSequence, int, int)
.boolean
areEqual(Date one, Date another)
Determine if two instances are equalDate
coerce(Object value, JavaType.CoercionContext coercionContext)
int
extractHashCode(Date value)
Extract a proper hash code for the given value.protected <X> TemporalJavaType<X>
forDatePrecision(TypeConfiguration typeConfiguration)
Date
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.Date
fromString(CharSequence string)
TemporalType
getPrecision()
The precision represented by this typeJdbcType
getRecommendedJdbcType(JdbcTypeIndicators context)
Obtain the "recommended"SQL type descriptor
for this Java type.boolean
isInstance(Object value)
Is the given value an instance of the described type?String
toString(Date value)
Object
unwrap(Date value, Class type, WrapperOptions options)
Unwrap an instance of our handled Java type into the requested type.Date
wrap(Object value, WrapperOptions options)
Wrap a value as our handled Java type.-
Methods inherited from class org.hibernate.type.descriptor.java.AbstractTemporalJavaType
forTimePrecision, forTimestampPrecision, 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, getDefaultSqlPrecision, getDefaultSqlScale, getDefaultValue, getJavaType, getJavaTypeClass, getLongSqlLength, getMutabilityPlan, getReplacement, getTypeName, isWider, useObjectEqualsHashCode
-
Methods inherited from interface org.hibernate.type.descriptor.java.TemporalJavaType
isTemporalType
-
-
-
-
Field Detail
-
INSTANCE
public static final JdbcDateJavaType INSTANCE
-
DATE_FORMAT
public static final String DATE_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:
DATE_FORMAT
-
-
Method Detail
-
getPrecision
public TemporalType getPrecision()
Description copied from interface:TemporalJavaType
The precision represented by this type
-
isInstance
public boolean isInstance(Object value)
Description copied from interface:JavaType
Is 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
.
-
areEqual
public boolean areEqual(Date one, Date another)
Description copied from interface:JavaType
Determine if two instances are equal
-
extractHashCode
public int extractHashCode(Date value)
Description copied from interface:JavaType
Extract a proper hash code for the given value.- Specified by:
extractHashCode
in interfaceJavaType<Date>
- Overrides:
extractHashCode
in 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: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.- Parameters:
value
- The value to unwraptype
- The type as which to unwrapoptions
- The options- Returns:
- The unwrapped value.
-
wrap
public Date wrap(Object value, WrapperOptions options)
Description copied from interface:JavaType
Wrap a value as our handled Java type.Intended use is during
ResultSet
extraction.- Parameters:
value
- The value to wrap.options
- The options- Returns:
- The wrapped value.
-
fromString
public Date fromString(CharSequence string)
-
fromEncodedString
public Date fromEncodedString(CharSequence charSequence, int start, int end)
Description copied from interface:JavaType
Reads 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.
-
appendEncodedString
public void appendEncodedString(SqlAppender sb, Date value)
Description copied from interface:JavaType
Appends 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.
-
getRecommendedJdbcType
public JdbcType getRecommendedJdbcType(JdbcTypeIndicators context)
Description copied from interface:BasicJavaType
Obtain the "recommended"SQL type descriptor
for this Java type. Often, but not always, the source of this recommendation is the JDBC specification.- Parameters:
context
- Contextual information- Returns:
- The recommended SQL type descriptor
-
forDatePrecision
protected <X> TemporalJavaType<X> forDatePrecision(TypeConfiguration typeConfiguration)
- Overrides:
forDatePrecision
in classAbstractTemporalJavaType<Date>
-
-