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 SQLintervaltype is supported.In practice, the 19 decimal digits of a SQL
bigintare capable of representing six centuries in nanoseconds and are sufficient for many applications. However, by default, we map JavaDurationto SQLnumeric(21)here, which can comfortably represent 60 millennia of nanos.
-
-
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 DurationJavaTypeINSTANCESingleton access
-
Constructor Summary
Constructors Constructor Description DurationJavaType()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DurationfromString(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.intgetDefaultSqlScale(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.JdbcTypegetRecommendedJdbcType(JdbcTypeIndicators context)Obtain the "recommended"SQL type descriptorfor this Java type.StringtoString(Duration value)<X> Xunwrap(Duration duration, Class<X> type, WrapperOptions options)Unwrap an instance of our handled Java type into the requested type.booleanuseObjectEqualsHashCode()Whether to useObject.equals(Object)andObject.hashCode()orJavaType.areEqual(Object, Object)andJavaType.extractHashCode(Object)for objects of this java type.<X> Durationwrap(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, getCheckCondition, getDefaultSqlLength, getDefaultValue, getLongSqlLength, getReplacement, getTypeName, 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:BasicJavaTypeObtain the "recommended"SQL type descriptorfor 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
-
useObjectEqualsHashCode
public boolean useObjectEqualsHashCode()
Description copied from interface:JavaTypeWhether to useObject.equals(Object)andObject.hashCode()orJavaType.areEqual(Object, Object)andJavaType.extractHashCode(Object)for objects of this java type. This is useful to avoid mega-morphic callsites.
-
fromString
public Duration fromString(CharSequence string)
-
unwrap
public <X> X unwrap(Duration duration, Class<X> 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 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.- 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:JavaTypeWrap a value as our handled Java type.Intended use is during
ResultSetextraction.- 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:JavaTypeThe 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_PRECISIONunless overridden
-
getDefaultSqlScale
public int getDefaultSqlScale(Dialect dialect, JdbcType jdbcType)
Description copied from interface:JavaTypeThe 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_SCALEunless overridden
-
-