Skip to content

Commit

Permalink
HHH-16825 Cascading an entity with a composite key causes NullPointer…
Browse files Browse the repository at this point in the history
…Exception in AbstractClassJavaType.extractHashCode
  • Loading branch information
dreab8 committed Jul 24, 2023
1 parent b66ba5f commit bf9a828
Showing 1 changed file with 4 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -221,9 +221,7 @@ protected void entityIsTransient(MergeEvent event, MergeContext copyCache) {
final EventSource session = event.getSession();
final String entityName = event.getEntityName();
final EntityPersister persister = session.getEntityPersister( entityName, entity );
final Object id = persister.hasIdentifierProperty()
? persister.getIdentifier( entity, session )
: null;
final Object id = persister.getIdentifier( entity, session );
final Object copy = copyEntity( copyCache, entity, session, persister, id );

// cascade first, so that all unsaved objects get their
Expand All @@ -233,10 +231,13 @@ protected void entityIsTransient(MergeEvent event, MergeContext copyCache) {
copyValues( persister, entity, copy, session, copyCache, ForeignKeyDirection.FROM_PARENT );

saveTransientEntity( copy, entityName, event.getRequestedId(), session, copyCache );
persister.setIdentifier( entity, persister.getIdentifier( copy, session ), session );

// cascade first, so that all unsaved objects get their
// copy created before we actually copy
super.cascadeAfterSave( session, persister, entity, copyCache );


copyValues( persister, entity, copy, session, copyCache, ForeignKeyDirection.TO_PARENT );

// saveTransientEntity has been called using a copy that contains empty collections
Expand Down

0 comments on commit bf9a828

Please sign in to comment.