Class BigDecimalJavaType

java.lang.Object
org.hibernate.type.descriptor.java.AbstractClassJavaType<BigDecimal>
org.hibernate.type.descriptor.java.BigDecimalJavaType
All Implemented Interfaces:
Serializable, BasicJavaType<BigDecimal>, JavaType<BigDecimal>

public class BigDecimalJavaType extends AbstractClassJavaType<BigDecimal>
Descriptor for BigDecimal handling.
See Also:
  • Field Details

  • Constructor Details

    • BigDecimalJavaType

      public BigDecimalJavaType()
  • Method Details

    • toString

      public String toString(BigDecimal value)
    • fromString

      public BigDecimal fromString(CharSequence string)
    • 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 for java.sql.Date, java.sql.Time, and java.sql.Timestamp.

      For EntityJavaType, this method handles proxies in a semantically correct way, by checking the entity instance underlying the proxy object.

    • cast

      public BigDecimal cast(Object value)
      Description copied from interface: JavaType
      Apply 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. Use javaType.cast(value) instead of (T) value wherever 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, since Class.cast() is an intrinsic.

    • areEqual

      public boolean areEqual(BigDecimal one, BigDecimal another)
      Description copied from interface: JavaType
      Determine if two instances are equal
      Specified by:
      areEqual in interface JavaType<BigDecimal>
      Overrides:
      areEqual in class AbstractClassJavaType<BigDecimal>
      Parameters:
      one - One instance
      another - The other instance
      Returns:
      True if the two are considered equal; false otherwise.
    • extractHashCode

      public int extractHashCode(BigDecimal value)
      Description copied from interface: JavaType
      Extract a proper hash code for the given value.
      Specified by:
      extractHashCode in interface JavaType<BigDecimal>
      Overrides:
      extractHashCode in class AbstractClassJavaType<BigDecimal>
      Parameters:
      value - The value for which to extract a hash code.
      Returns:
      The extracted hash code.
    • unwrap

      public <X> X unwrap(BigDecimal value, 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 the Integer value as a Long, we would return something like Long.valueOf( value.longValue() ).

      Intended use is during PreparedStatement binding.

      Type Parameters:
      X - The conversion type.
      Parameters:
      value - The value to unwrap
      type - The type as which to unwrap
      options - The options
      Returns:
      The unwrapped value.
    • wrap

      public <X> BigDecimal 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.
    • isWider

      public boolean isWider(JavaType<?> javaType)
      Description copied from interface: JavaType
      Determines if this Java type is wider than the given Java type, that is, if the given type can be safely widened to this type.
    • getDefaultSqlLength

      public long getDefaultSqlLength(Dialect dialect, JdbcType jdbcType)
      Description copied from interface: JavaType
      The default column length when this Java type is mapped to a SQL data type which is parametrized by length, for example Types.VARCHAR.
      Returns:
      Size.DEFAULT_LENGTH unless overridden
    • 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 example Types.DECIMAL.
      Returns:
      Size.DEFAULT_PRECISION unless overridden
    • coerce

      public BigDecimal coerce(Object value)
      Description copied from interface: JavaType
      Coerce 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 require WrapperOptions. The wrap() method may be thought of as offering explicitly requested type conversions driven by a choice of JdbcType.

      An implementation of this method reports failure in one of two ways, by:

      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))
      Parameters:
      value - The value to coerce
      Returns:
      The coerced value, or the given value if no coercion was possible