Addendum: This issue could lead to {{ClassCastException}}s in onFlush:
java.lang.Thread.run(Thread.java:722) Caused by: org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of [SOME_ENTITY_HERE].id at
org.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:192) at
org.hibernate.tuple.entity.AbstractEntityTuplizer.getIdentifier(AbstractEntityTuplizer.java:346) at
org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier(AbstractEntityPersister.java:4746) at
org.hibernate.persister.entity.AbstractEntityPersister.isTransient(AbstractEntityPersister.java:4465) at
org.hibernate.engine.internal.ForeignKeys.isTransient(ForeignKeys.java:243) at
org.hibernate.engine.spi.CascadingActions$8.noCascade(CascadingActions.java:393) at
org.hibernate.engine.internal.Cascade.cascade(Cascade.java:129) at
org.hibernate.event.internal.AbstractFlushingEventListener.cascadeOnFlush(AbstractFlushingEventListener.java:167) at
org.hibernate.event.internal.AbstractFlushingEventListener.prepareEntityFlushes(AbstractFlushingEventListener.java:158) at
org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:91) at
org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:55) at
org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1222) at
org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:425) at
org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit(JdbcTransaction.java:101) at
org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:177) at
org.hibernate.jpa.internal.TransactionImpl.commit(TransactionImpl.java:77) at
org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:517) ... 92 more Caused by: java.lang.IllegalArgumentException: object is not an instance of declaring class at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at
java.lang.reflect.Method.invoke(Method.java:601) at
org.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:169) ... 108 more