Class StringDateTimeUserType

java.lang.Object
com.peterphi.std.guice.hibernate.usertype.StringDateTimeUserType
All Implemented Interfaces:
Comparator, org.hibernate.usertype.UserType, org.hibernate.usertype.UserVersionType

public class StringDateTimeUserType extends Object implements org.hibernate.usertype.UserType, org.hibernate.usertype.UserVersionType, Comparator
Encodes Joda DateTime values into a VARCHAR column where the date format is: yyyyMMdd'T'HHmmss.SSSZ. The time zone offset is 'Z' for zero, and of the form '±HHmm' for non-zero.
The column size ranges between 20 and 24 characters.
  • Field Details

  • Constructor Details

    • StringDateTimeUserType

      public StringDateTimeUserType()
  • Method Details

    • sqlTypes

      public int[] sqlTypes()
      Specified by:
      sqlTypes in interface org.hibernate.usertype.UserType
    • returnedClass

      public Class returnedClass()
      Specified by:
      returnedClass in interface org.hibernate.usertype.UserType
    • equals

      public boolean equals(Object x, Object y) throws org.hibernate.HibernateException
      Specified by:
      equals in interface org.hibernate.usertype.UserType
      Throws:
      org.hibernate.HibernateException
    • hashCode

      public int hashCode(Object x) throws org.hibernate.HibernateException
      Specified by:
      hashCode in interface org.hibernate.usertype.UserType
      Throws:
      org.hibernate.HibernateException
    • nullSafeGet

      public org.joda.time.DateTime nullSafeGet(ResultSet resultSet, String[] names, org.hibernate.engine.spi.SharedSessionContractImplementor session, Object owner) throws org.hibernate.HibernateException, SQLException
      Specified by:
      nullSafeGet in interface org.hibernate.usertype.UserType
      Throws:
      org.hibernate.HibernateException
      SQLException
    • nullSafeSet

      public void nullSafeSet(PreparedStatement statement, Object value, int index, org.hibernate.engine.spi.SharedSessionContractImplementor session) throws org.hibernate.HibernateException, SQLException
      Specified by:
      nullSafeSet in interface org.hibernate.usertype.UserType
      Throws:
      org.hibernate.HibernateException
      SQLException
    • deepCopy

      public org.joda.time.DateTime deepCopy(Object value) throws org.hibernate.HibernateException
      Specified by:
      deepCopy in interface org.hibernate.usertype.UserType
      Throws:
      org.hibernate.HibernateException
    • isMutable

      public boolean isMutable()
      Specified by:
      isMutable in interface org.hibernate.usertype.UserType
    • disassemble

      public org.joda.time.DateTime disassemble(Object value) throws org.hibernate.HibernateException
      Specified by:
      disassemble in interface org.hibernate.usertype.UserType
      Throws:
      org.hibernate.HibernateException
    • assemble

      public org.joda.time.DateTime assemble(Serializable cached, Object owner) throws org.hibernate.HibernateException
      Specified by:
      assemble in interface org.hibernate.usertype.UserType
      Throws:
      org.hibernate.HibernateException
    • replace

      public org.joda.time.DateTime replace(Object original, Object target, Object owner) throws org.hibernate.HibernateException
      Specified by:
      replace in interface org.hibernate.usertype.UserType
      Throws:
      org.hibernate.HibernateException
    • seed

      public org.joda.time.DateTime seed(org.hibernate.engine.spi.SharedSessionContractImplementor session)
      Specified by:
      seed in interface org.hibernate.usertype.UserVersionType
    • next

      public org.joda.time.DateTime next(Object current, org.hibernate.engine.spi.SharedSessionContractImplementor session)
      Specified by:
      next in interface org.hibernate.usertype.UserVersionType
    • compare

      public int compare(Object a, Object b)
      Specified by:
      compare in interface Comparator