Class DurationJavaType
- java.lang.Object
-
- org.hibernate.type.descriptor.java.AbstractClassJavaType<Duration>
-
- org.hibernate.type.descriptor.java.DurationJavaType
-
- All Implemented Interfaces:
Serializable
,BasicJavaType<Duration>
,JavaType<Duration>
public class DurationJavaType extends AbstractClassJavaType<Duration>
Descriptor forDuration
, which is represented internally as (long seconds
,int nanoseconds
), approximately 28 decimal digits of precision. This quantity must be stored in the database as a single integer with units of nanoseconds, unless the ANSI SQLinterval
type is supported.In practice, the 19 decimal digits of a SQL
bigint
are capable of representing six centuries in nanoseconds and are sufficient for many applications. However, by default, we map JavaDuration
to SQLnumeric(21)
here, which can comfortably represent 60 millennia of nanos.- 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 DurationJavaType
INSTANCE
Singleton access
-
Constructor Summary
Constructors Constructor Description DurationJavaType()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Duration
fromString(CharSequence string)
int
getDefaultSqlPrecision(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
.int
getDefaultSqlScale(Dialect dialect, JdbcType jdbcType)
The default column scale when this Java type is mapped to a SQL data type which is parametrized by scale, for exampleTypes.DECIMAL
.JdbcType
getRecommendedJdbcType(JdbcTypeIndicators context)
Obtain the "recommended"SQL type descriptor
for this Java type.String
toString(Duration value)
<X> X
unwrap(Duration duration, Class<X> type, WrapperOptions options)
Unwrap an instance of our handled Java type into the requested type.<X> Duration
wrap(X value, WrapperOptions options)
Wrap a value as our handled Java type.-
Methods inherited from class org.hibernate.type.descriptor.java.AbstractClassJavaType
areEqual, extractHashCode, extractLoggableRepresentation, 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.JavaType
appendEncodedString, coerce, createJavaType, createJavaType, fromEncodedString, getDefaultSqlLength, getDefaultValue, getLongSqlLength, getReplacement, isInstance, isTemporalType, isWider
-
-
-
-
Field Detail
-
INSTANCE
public static final DurationJavaType INSTANCE
Singleton access
-
-
Method Detail
-
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
-
fromString
public Duration fromString(CharSequence string)
-
unwrap
public <X> X unwrap(Duration duration, 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.- Type Parameters:
X
- The conversion type.- Parameters:
duration
- The value to unwraptype
- The type as which to unwrapoptions
- The options- Returns:
- The unwrapped value.
-
wrap
public <X> Duration wrap(X value, WrapperOptions options)
Description copied from interface:JavaType
Wrap a value as our handled Java type.Intended use is during
ResultSet
extraction.- Type Parameters:
X
- The conversion type.- Parameters:
value
- The value to wrap.options
- The options- Returns:
- The wrapped value.
-
getDefaultSqlPrecision
public int getDefaultSqlPrecision(Dialect dialect, JdbcType jdbcType)
Description copied from interface:JavaType
The default column precision when this Java type is mapped to a SQL data type which is parametrized by precision, for exampleTypes.DECIMAL
.- Returns:
Size.DEFAULT_PRECISION
unless overridden
-
getDefaultSqlScale
public int getDefaultSqlScale(Dialect dialect, JdbcType jdbcType)
Description copied from interface:JavaType
The default column scale when this Java type is mapped to a SQL data type which is parametrized by scale, for exampleTypes.DECIMAL
.- Returns:
Size.DEFAULT_SCALE
unless overridden
-
-