After updating to 5.4.0.RELEASE, i still have the same error, but with a slighly different stacktrace with using FlushMode.COMMIT:
java.lang.ClassCastException: class java.lang.Integer cannot be cast to class org.hibernate.action.internal.DelayedPostInsertIdentifier (java.lang.Integer is in module java.base of loader 'bootstrap'; org.hibernate.action.internal.DelayedPostInsertIdentifier is in unnamed module of loader 'app')
at org.hibernate.action.internal.DelayedPostInsertIdentifier.compareTo(DelayedPostInsertIdentifier.java:25)
at org.hibernate.internal.util.compare.ComparableComparator.compare(ComparableComparator.java:23)
at org.hibernate.internal.util.compare.ComparableComparator.compare(ComparableComparator.java:18)
at org.hibernate.type.AbstractStandardBasicType.compare(AbstractStandardBasicType.java:215)
at org.hibernate.action.internal.CollectionAction.compareTo(CollectionAction.java:159)
at java.base/java.util.ComparableTimSort.binarySort(ComparableTimSort.java:262)
at java.base/java.util.ComparableTimSort.sort(ComparableTimSort.java:189)
at java.base/java.util.Arrays.sort(Arrays.java:1315)
at java.base/java.util.Arrays.sort(Arrays.java:1509)
at java.base/java.util.ArrayList.sort(ArrayList.java:1749)
at java.base/java.util.Collections.sort(Collections.java:143)
at org.hibernate.engine.spi.ExecutableList.sort(ExecutableList.java:255)
at org.hibernate.engine.spi.ActionQueue.sortCollectionActions(ActionQueue.java:762)
at org.hibernate.event.internal.AbstractFlushingEventListener.flushCollections(AbstractFlushingEventListener.java:326)
at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:95)
at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:38)
at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1457)
at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:514)
at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:3321)
at org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:2492)
at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:473)
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback(JdbcResourceLocalTransactionCoordinatorImpl.java:178)
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.access$300(JdbcResourceLocalTransactionCoordinatorImpl.java:39)
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:271)
at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:104)