public void replaceDelayedEntityIdentityInsertKeys(EntityKey oldKey, Serializable generatedId) {
    Object entity = entitiesByKey.remove(oldKey);
    EntityEntry oldEntry = (EntityEntry) entityEntries.remove(entity);

    EntityKey newKey =
        new EntityKey(generatedId, oldEntry.getPersister(), getSession().getEntityMode());
    addEntity(newKey, entity);
    addEntry(
        entity,
        oldEntry.getStatus(),
        oldEntry.getLoadedState(),
        oldEntry.getRowId(),
        generatedId,
        oldEntry.getVersion(),
        oldEntry.getLockMode(),
        oldEntry.isExistsInDatabase(),
        oldEntry.getPersister(),
        oldEntry.isBeingReplicated(),
        oldEntry.isLoadedWithLazyPropertiesUnfetched());
  }
 private boolean isInManagedState(Object child, EventSource session) {
   EntityEntry entry = session.getPersistenceContext().getEntry(child);
   return entry != null
       && (entry.getStatus() == Status.MANAGED || entry.getStatus() == Status.READ_ONLY);
 }