Map a ZonedDateTime or OffsetDateTime with Hibernate 5.0.12

Hi folks,

working with Oracle 19 and Java8, Hibernate 5.0.12.

We do receive a dateAcceptation as a XmlGregorianCalendar.

I’m trying to find a way to persist that date as a ZonedDateTime, without JPA and using hbm.xml files.

Unfortunatly, this doesn’t work :

ALTER TABLE VIREMENT_VSRE ADD DATEACCEPTATION TIMESTAMP(6) with time zone;

Same thing trying OffsetDateTimeType :

Caused by: java.lang.ClassCastException: java.time.OffsetDateTime cannot be cast to java.util.Date

at org.hibernate.type.descriptor.java.JdbcTimestampTypeDescriptor$TimestampMutabilityPlan.deepCopyNotNull(JdbcTimestampTypeDescriptor.java:28)

at org.hibernate.type.descriptor.java.MutableMutabilityPlan.deepCopy(MutableMutabilityPlan.java:35)

at org.hibernate.type.AbstractStandardBasicType.deepCopy(AbstractStandardBasicType.java:283)

at org.hibernate.type.AbstractStandardBasicType.deepCopy(AbstractStandardBasicType.java:279)

at org.hibernate.type.TypeHelper.deepCopy(TypeHelper.java:51)

at org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:264)

at org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:178)

at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:121)

at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:192)

at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:177)

at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:97)

at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:73)

at org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:648)

at org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:640)

at org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:635)

at org.springframework.orm.hibernate5.HibernateTemplate$16.doInHibernate(HibernateTemplate.java:710)

at org.springframework.orm.hibernate5.HibernateTemplate.doExecute(HibernateTemplate.java:361)

at org.springframework.orm.hibernate5.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:328)

at org.springframework.orm.hibernate5.HibernateTemplate.saveOrUpdate(HibernateTemplate.java:706)

I must be wrong somewhere, but I just can’t find where I’m doing something wrong.

Could you please help?

Kindly yours,

Thomas

Sorry, but Hibernate ORM 5.0 is unsupported. If you seek community support, you will have to update to the latest stable version.