Package org.hibernate.engine.spi

Examples of org.hibernate.engine.spi.EntityEntry


    boolean shouldDelayIdentityInserts = !inTxn && !requiresImmediateIdAccess;

    // Put a placeholder in entries, so we don't recurse back and try to save() the
    // same object again. QUESTION: should this be done before onSave() is called?
    // likewise, should it be done before onUpdate()?
    EntityEntry original = source.getPersistenceContext().addEntry(
        entity,
        Status.SAVING,
        null,
        null,
        id,
        null,
        LockMode.WRITE,
        useIdentityColumn,
        persister,
        false,
        false
    );

    cascadeBeforeSave( source, persister, entity, anything );

    Object[] values = persister.getPropertyValuesToInsert( entity, getMergeMap( anything ), source );
    Type[] types = persister.getPropertyTypes();

    boolean substitute = substituteValuesIfNecessary( entity, id, values, persister, source );

    if ( persister.hasCollections() ) {
      substitute = substitute || visitCollectionsBeforeSave( entity, id, values, types, source );
    }

    if ( substitute ) {
      persister.setPropertyValues( entity, values );
    }

    TypeHelper.deepCopy(
        values,
        types,
        persister.getPropertyUpdateability(),
        values,
        source
    );

    AbstractEntityInsertAction insert = addInsertAction(
        values, id, entity, persister, useIdentityColumn, source, shouldDelayIdentityInserts
    );

    // postpone initializing id in case the insert has non-nullable transient dependencies
    // that are not resolved until cascadeAfterSave() is executed
    cascadeAfterSave( source, persister, entity, anything );
    if ( useIdentityColumn && insert.isEarlyInsert() ) {
      if ( !EntityIdentityInsertAction.class.isInstance( insert ) ) {
        throw new IllegalStateException(
            "Insert should be using an identity column, but action is of unexpected type: " +
                insert.getClass().getName()
        );
      }
      id = ((EntityIdentityInsertAction) insert).getGeneratedId();

      insert.handleNaturalIdPostSaveNotifications( id );
    }

    markInterceptorDirty( entity, persister, source );

    EntityEntry newEntry = source.getPersistenceContext().getEntry( entity );

    if ( newEntry != original ) {
      OgmEntityEntryState ogmEntityState = newEntry.getExtraState( OgmEntityEntryState.class );
      if ( ogmEntityState == null ) {
        newEntry.addExtraState( original.getExtraState( OgmEntityEntryState.class ) );
      }
    }

    return id;
  }
View Full Code Here


    boolean shouldDelayIdentityInserts = !inTxn && !requiresImmediateIdAccess;

    // Put a placeholder in entries, so we don't recurse back and try to save() the
    // same object again. QUESTION: should this be done before onSave() is called?
    // likewise, should it be done before onUpdate()?
    EntityEntry original = source.getPersistenceContext().addEntry(
        entity,
        Status.SAVING,
        null,
        null,
        id,
        null,
        LockMode.WRITE,
        useIdentityColumn,
        persister,
        false,
        false
    );

    cascadeBeforeSave( source, persister, entity, anything );

    Object[] values = persister.getPropertyValuesToInsert( entity, getMergeMap( anything ), source );
    Type[] types = persister.getPropertyTypes();

    boolean substitute = substituteValuesIfNecessary( entity, id, values, persister, source );

    if ( persister.hasCollections() ) {
      substitute = substitute || visitCollectionsBeforeSave( entity, id, values, types, source );
    }

    if ( substitute ) {
      persister.setPropertyValues( entity, values );
    }

    TypeHelper.deepCopy(
        values,
        types,
        persister.getPropertyUpdateability(),
        values,
        source
    );

    AbstractEntityInsertAction insert = addInsertAction(
        values, id, entity, persister, useIdentityColumn, source, shouldDelayIdentityInserts
    );

    // postpone initializing id in case the insert has non-nullable transient dependencies
    // that are not resolved until cascadeAfterSave() is executed
    cascadeAfterSave( source, persister, entity, anything );
    if ( useIdentityColumn && insert.isEarlyInsert() ) {
      if ( !EntityIdentityInsertAction.class.isInstance( insert ) ) {
        throw new IllegalStateException(
            "Insert should be using an identity column, but action is of unexpected type: " +
                insert.getClass().getName()
        );
      }
      id = ((EntityIdentityInsertAction) insert).getGeneratedId();

      insert.handleNaturalIdPostSaveNotifications( id );
    }

    markInterceptorDirty( entity, persister, source );

    EntityEntry newEntry = source.getPersistenceContext().getEntry( entity );

    if ( newEntry != original ) {
      OgmEntityEntryState ogmEntityState = newEntry.getExtraState( OgmEntityEntryState.class );
      if ( ogmEntityState == null ) {
        newEntry.addExtraState( original.getExtraState( OgmEntityEntryState.class ) );
      }
    }

    return id;
  }
View Full Code Here

    boolean shouldDelayIdentityInserts = !inTxn && !requiresImmediateIdAccess;

    // Put a placeholder in entries, so we don't recurse back and try to save() the
    // same object again. QUESTION: should this be done before onSave() is called?
    // likewise, should it be done before onUpdate()?
    EntityEntry original = source.getPersistenceContext().addEntry(
        entity,
        Status.SAVING,
        null,
        null,
        id,
        null,
        LockMode.WRITE,
        useIdentityColumn,
        persister,
        false,
        false
    );

    cascadeBeforeSave( source, persister, entity, anything );

    Object[] values = persister.getPropertyValuesToInsert( entity, getMergeMap( anything ), source );
    Type[] types = persister.getPropertyTypes();

    boolean substitute = substituteValuesIfNecessary( entity, id, values, persister, source );

    if ( persister.hasCollections() ) {
      substitute = substitute || visitCollectionsBeforeSave( entity, id, values, types, source );
    }

    if ( substitute ) {
      persister.setPropertyValues( entity, values );
    }

    TypeHelper.deepCopy(
        values,
        types,
        persister.getPropertyUpdateability(),
        values,
        source
    );

    AbstractEntityInsertAction insert = addInsertAction(
        values, id, entity, persister, useIdentityColumn, source, shouldDelayIdentityInserts
    );

    // postpone initializing id in case the insert has non-nullable transient dependencies
    // that are not resolved until cascadeAfterSave() is executed
    cascadeAfterSave( source, persister, entity, anything );
    if ( useIdentityColumn && insert.isEarlyInsert() ) {
      if ( !EntityIdentityInsertAction.class.isInstance( insert ) ) {
        throw new IllegalStateException(
            "Insert should be using an identity column, but action is of unexpected type: " +
                insert.getClass().getName()
        );
      }
      id = ((EntityIdentityInsertAction) insert).getGeneratedId();

      insert.handleNaturalIdPostSaveNotifications( id );
    }

    markInterceptorDirty( entity, persister, source );

    EntityEntry newEntry = source.getPersistenceContext().getEntry( entity );

    if ( newEntry != original ) {
      OgmEntityEntryState ogmEntityState = newEntry.getExtraState( OgmEntityEntryState.class );
      if ( ogmEntityState == null ) {
        newEntry.addExtraState( original.getExtraState( OgmEntityEntryState.class ) );
      }
    }

    return id;
  }
View Full Code Here

    boolean shouldDelayIdentityInserts = !inTxn && !requiresImmediateIdAccess;

    // Put a placeholder in entries, so we don't recurse back and try to save() the
    // same object again. QUESTION: should this be done before onSave() is called?
    // likewise, should it be done before onUpdate()?
    EntityEntry original = source.getPersistenceContext().addEntry(
        entity,
        Status.SAVING,
        null,
        null,
        id,
        null,
        LockMode.WRITE,
        useIdentityColumn,
        persister,
        false,
        false
    );

    cascadeBeforeSave( source, persister, entity, anything );

    Object[] values = persister.getPropertyValuesToInsert( entity, getMergeMap( anything ), source );
    Type[] types = persister.getPropertyTypes();

    boolean substitute = substituteValuesIfNecessary( entity, id, values, persister, source );

    if ( persister.hasCollections() ) {
      substitute = substitute || visitCollectionsBeforeSave( entity, id, values, types, source );
    }

    if ( substitute ) {
      persister.setPropertyValues( entity, values );
    }

    TypeHelper.deepCopy(
        values,
        types,
        persister.getPropertyUpdateability(),
        values,
        source
    );

    AbstractEntityInsertAction insert = addInsertAction(
        values, id, entity, persister, useIdentityColumn, source, shouldDelayIdentityInserts
    );

    // postpone initializing id in case the insert has non-nullable transient dependencies
    // that are not resolved until cascadeAfterSave() is executed
    cascadeAfterSave( source, persister, entity, anything );
    if ( useIdentityColumn && insert.isEarlyInsert() ) {
      if ( !EntityIdentityInsertAction.class.isInstance( insert ) ) {
        throw new IllegalStateException(
            "Insert should be using an identity column, but action is of unexpected type: " +
                insert.getClass().getName()
        );
      }
      id = ((EntityIdentityInsertAction) insert).getGeneratedId();

      insert.handleNaturalIdPostSaveNotifications( id );
    }

    markInterceptorDirty( entity, persister, source );

    EntityEntry newEntry = source.getPersistenceContext().getEntry( entity );

    if ( newEntry != original ) {
      OgmEntityEntryState ogmEntityState = newEntry.getExtraState( OgmEntityEntryState.class );
      if ( ogmEntityState == null ) {
        newEntry.addExtraState( original.getExtraState( OgmEntityEntryState.class ) );
      }
    }

    return id;
  }
View Full Code Here

    boolean shouldDelayIdentityInserts = !inTxn && !requiresImmediateIdAccess;

    // Put a placeholder in entries, so we don't recurse back and try to save() the
    // same object again. QUESTION: should this be done before onSave() is called?
    // likewise, should it be done before onUpdate()?
    EntityEntry original = source.getPersistenceContext().addEntry(
        entity,
        Status.SAVING,
        null,
        null,
        id,
        null,
        LockMode.WRITE,
        useIdentityColumn,
        persister,
        false,
        false
    );

    cascadeBeforeSave( source, persister, entity, anything );

    Object[] values = persister.getPropertyValuesToInsert( entity, getMergeMap( anything ), source );
    Type[] types = persister.getPropertyTypes();

    boolean substitute = substituteValuesIfNecessary( entity, id, values, persister, source );

    if ( persister.hasCollections() ) {
      substitute = substitute || visitCollectionsBeforeSave( entity, id, values, types, source );
    }

    if ( substitute ) {
      persister.setPropertyValues( entity, values );
    }

    TypeHelper.deepCopy(
        values,
        types,
        persister.getPropertyUpdateability(),
        values,
        source
    );

    AbstractEntityInsertAction insert = addInsertAction(
        values, id, entity, persister, useIdentityColumn, source, shouldDelayIdentityInserts
    );

    // postpone initializing id in case the insert has non-nullable transient dependencies
    // that are not resolved until cascadeAfterSave() is executed
    cascadeAfterSave( source, persister, entity, anything );
    if ( useIdentityColumn && insert.isEarlyInsert() ) {
      if ( !EntityIdentityInsertAction.class.isInstance( insert ) ) {
        throw new IllegalStateException(
            "Insert should be using an identity column, but action is of unexpected type: " +
                insert.getClass().getName()
        );
      }
      id = ((EntityIdentityInsertAction) insert).getGeneratedId();

      insert.handleNaturalIdPostSaveNotifications( id );
    }

    markInterceptorDirty( entity, persister, source );

    EntityEntry newEntry = source.getPersistenceContext().getEntry( entity );

    if ( newEntry != original ) {
      OgmEntityEntryState ogmEntityState = newEntry.getExtraState( OgmEntityEntryState.class );
      if ( ogmEntityState == null ) {
        newEntry.addExtraState( original.getExtraState( OgmEntityEntryState.class ) );
      }
    }

    return id;
  }
View Full Code Here

    boolean shouldDelayIdentityInserts = !inTxn && !requiresImmediateIdAccess;

    // Put a placeholder in entries, so we don't recurse back and try to save() the
    // same object again. QUESTION: should this be done before onSave() is called?
    // likewise, should it be done before onUpdate()?
    EntityEntry original = source.getPersistenceContext().addEntry(
        entity,
        Status.SAVING,
        null,
        null,
        id,
        null,
        LockMode.WRITE,
        useIdentityColumn,
        persister,
        false,
        false
    );

    cascadeBeforeSave( source, persister, entity, anything );

    Object[] values = persister.getPropertyValuesToInsert( entity, getMergeMap( anything ), source );
    Type[] types = persister.getPropertyTypes();

    boolean substitute = substituteValuesIfNecessary( entity, id, values, persister, source );

    if ( persister.hasCollections() ) {
      substitute = substitute || visitCollectionsBeforeSave( entity, id, values, types, source );
    }

    if ( substitute ) {
      persister.setPropertyValues( entity, values );
    }

    TypeHelper.deepCopy(
        values,
        types,
        persister.getPropertyUpdateability(),
        values,
        source
    );

    AbstractEntityInsertAction insert = addInsertAction(
        values, id, entity, persister, useIdentityColumn, source, shouldDelayIdentityInserts
    );

    // postpone initializing id in case the insert has non-nullable transient dependencies
    // that are not resolved until cascadeAfterSave() is executed
    cascadeAfterSave( source, persister, entity, anything );
    if ( useIdentityColumn && insert.isEarlyInsert() ) {
      if ( !EntityIdentityInsertAction.class.isInstance( insert ) ) {
        throw new IllegalStateException(
            "Insert should be using an identity column, but action is of unexpected type: " +
                insert.getClass().getName()
        );
      }
      id = ((EntityIdentityInsertAction) insert).getGeneratedId();

      insert.handleNaturalIdPostSaveNotifications( id );
    }

    markInterceptorDirty( entity, persister, source );

    EntityEntry newEntry = source.getPersistenceContext().getEntry( entity );

    if ( newEntry != original ) {
      OgmEntityEntryState ogmEntityState = newEntry.getExtraState( OgmEntityEntryState.class );
      if ( ogmEntityState == null ) {
        newEntry.addExtraState( original.getExtraState( OgmEntityEntryState.class ) );
      }
    }

    return id;
  }
View Full Code Here

    boolean shouldDelayIdentityInserts = !inTxn && !requiresImmediateIdAccess;

    // Put a placeholder in entries, so we don't recurse back and try to save() the
    // same object again. QUESTION: should this be done before onSave() is called?
    // likewise, should it be done before onUpdate()?
    EntityEntry original = source.getPersistenceContext().addEntry(
        entity,
        Status.SAVING,
        null,
        null,
        id,
        null,
        LockMode.WRITE,
        useIdentityColumn,
        persister,
        false,
        false
    );

    cascadeBeforeSave( source, persister, entity, anything );

    Object[] values = persister.getPropertyValuesToInsert( entity, getMergeMap( anything ), source );
    Type[] types = persister.getPropertyTypes();

    boolean substitute = substituteValuesIfNecessary( entity, id, values, persister, source );

    if ( persister.hasCollections() ) {
      substitute = substitute || visitCollectionsBeforeSave( entity, id, values, types, source );
    }

    if ( substitute ) {
      persister.setPropertyValues( entity, values );
    }

    TypeHelper.deepCopy(
        values,
        types,
        persister.getPropertyUpdateability(),
        values,
        source
    );

    AbstractEntityInsertAction insert = addInsertAction(
        values, id, entity, persister, useIdentityColumn, source, shouldDelayIdentityInserts
    );

    // postpone initializing id in case the insert has non-nullable transient dependencies
    // that are not resolved until cascadeAfterSave() is executed
    cascadeAfterSave( source, persister, entity, anything );
    if ( useIdentityColumn && insert.isEarlyInsert() ) {
      if ( !EntityIdentityInsertAction.class.isInstance( insert ) ) {
        throw new IllegalStateException(
            "Insert should be using an identity column, but action is of unexpected type: " +
                insert.getClass().getName()
        );
      }
      id = ((EntityIdentityInsertAction) insert).getGeneratedId();

      insert.handleNaturalIdPostSaveNotifications( id );
    }

    markInterceptorDirty( entity, persister, source );

    EntityEntry newEntry = source.getPersistenceContext().getEntry( entity );

    if ( newEntry != original ) {
      OgmEntityEntryState ogmEntityState = newEntry.getExtraState( OgmEntityEntryState.class );
      if ( ogmEntityState == null ) {
        newEntry.addExtraState( original.getExtraState( OgmEntityEntryState.class ) );
      }
    }

    return id;
  }
View Full Code Here

    boolean shouldDelayIdentityInserts = !inTxn && !requiresImmediateIdAccess;

    // Put a placeholder in entries, so we don't recurse back and try to save() the
    // same object again. QUESTION: should this be done before onSave() is called?
    // likewise, should it be done before onUpdate()?
    EntityEntry original = source.getPersistenceContext().addEntry(
        entity,
        Status.SAVING,
        null,
        null,
        id,
        null,
        LockMode.WRITE,
        useIdentityColumn,
        persister,
        false,
        false
    );

    cascadeBeforeSave( source, persister, entity, anything );

    Object[] values = persister.getPropertyValuesToInsert( entity, getMergeMap( anything ), source );
    Type[] types = persister.getPropertyTypes();

    boolean substitute = substituteValuesIfNecessary( entity, id, values, persister, source );

    if ( persister.hasCollections() ) {
      substitute = substitute || visitCollectionsBeforeSave( entity, id, values, types, source );
    }

    if ( substitute ) {
      persister.setPropertyValues( entity, values );
    }

    TypeHelper.deepCopy(
        values,
        types,
        persister.getPropertyUpdateability(),
        values,
        source
    );

    AbstractEntityInsertAction insert = addInsertAction(
        values, id, entity, persister, useIdentityColumn, source, shouldDelayIdentityInserts
    );

    // postpone initializing id in case the insert has non-nullable transient dependencies
    // that are not resolved until cascadeAfterSave() is executed
    cascadeAfterSave( source, persister, entity, anything );
    if ( useIdentityColumn && insert.isEarlyInsert() ) {
      if ( !EntityIdentityInsertAction.class.isInstance( insert ) ) {
        throw new IllegalStateException(
            "Insert should be using an identity column, but action is of unexpected type: " +
                insert.getClass().getName()
        );
      }
      id = ((EntityIdentityInsertAction) insert).getGeneratedId();

      insert.handleNaturalIdPostSaveNotifications( id );
    }

    markInterceptorDirty( entity, persister, source );

    EntityEntry newEntry = source.getPersistenceContext().getEntry( entity );

    if ( newEntry != original ) {
      OgmEntityEntryState ogmEntityState = newEntry.getExtraState( OgmEntityEntryState.class );
      if ( ogmEntityState == null ) {
        newEntry.addExtraState( original.getExtraState( OgmEntityEntryState.class ) );
      }
    }

    return id;
  }
View Full Code Here

    boolean shouldDelayIdentityInserts = !inTxn && !requiresImmediateIdAccess;

    // Put a placeholder in entries, so we don't recurse back and try to save() the
    // same object again. QUESTION: should this be done before onSave() is called?
    // likewise, should it be done before onUpdate()?
    EntityEntry original = source.getPersistenceContext().addEntry(
        entity,
        Status.SAVING,
        null,
        null,
        id,
        null,
        LockMode.WRITE,
        useIdentityColumn,
        persister,
        false,
        false
    );

    cascadeBeforeSave( source, persister, entity, anything );

    Object[] values = persister.getPropertyValuesToInsert( entity, getMergeMap( anything ), source );
    Type[] types = persister.getPropertyTypes();

    boolean substitute = substituteValuesIfNecessary( entity, id, values, persister, source );

    if ( persister.hasCollections() ) {
      substitute = substitute || visitCollectionsBeforeSave( entity, id, values, types, source );
    }

    if ( substitute ) {
      persister.setPropertyValues( entity, values );
    }

    TypeHelper.deepCopy(
        values,
        types,
        persister.getPropertyUpdateability(),
        values,
        source
    );

    AbstractEntityInsertAction insert = addInsertAction(
        values, id, entity, persister, useIdentityColumn, source, shouldDelayIdentityInserts
    );

    // postpone initializing id in case the insert has non-nullable transient dependencies
    // that are not resolved until cascadeAfterSave() is executed
    cascadeAfterSave( source, persister, entity, anything );
    if ( useIdentityColumn && insert.isEarlyInsert() ) {
      if ( !EntityIdentityInsertAction.class.isInstance( insert ) ) {
        throw new IllegalStateException(
            "Insert should be using an identity column, but action is of unexpected type: " +
                insert.getClass().getName()
        );
      }
      id = ((EntityIdentityInsertAction) insert).getGeneratedId();

      insert.handleNaturalIdPostSaveNotifications( id );
    }

    markInterceptorDirty( entity, persister, source );

    EntityEntry newEntry = source.getPersistenceContext().getEntry( entity );

    if ( newEntry != original ) {
      OgmEntityEntryState ogmEntityState = newEntry.getExtraState( OgmEntityEntryState.class );
      if ( ogmEntityState == null ) {
        newEntry.addExtraState( original.getExtraState( OgmEntityEntryState.class ) );
      }
    }

    return id;
  }
View Full Code Here

    boolean shouldDelayIdentityInserts = !inTxn && !requiresImmediateIdAccess;

    // Put a placeholder in entries, so we don't recurse back and try to save() the
    // same object again. QUESTION: should this be done before onSave() is called?
    // likewise, should it be done before onUpdate()?
    EntityEntry original = source.getPersistenceContext().addEntry(
        entity,
        Status.SAVING,
        null,
        null,
        id,
        null,
        LockMode.WRITE,
        useIdentityColumn,
        persister,
        false,
        false
    );

    cascadeBeforeSave( source, persister, entity, anything );

    Object[] values = persister.getPropertyValuesToInsert( entity, getMergeMap( anything ), source );
    Type[] types = persister.getPropertyTypes();

    boolean substitute = substituteValuesIfNecessary( entity, id, values, persister, source );

    if ( persister.hasCollections() ) {
      substitute = substitute || visitCollectionsBeforeSave( entity, id, values, types, source );
    }

    if ( substitute ) {
      persister.setPropertyValues( entity, values );
    }

    TypeHelper.deepCopy(
        values,
        types,
        persister.getPropertyUpdateability(),
        values,
        source
    );

    AbstractEntityInsertAction insert = addInsertAction(
        values, id, entity, persister, useIdentityColumn, source, shouldDelayIdentityInserts
    );

    // postpone initializing id in case the insert has non-nullable transient dependencies
    // that are not resolved until cascadeAfterSave() is executed
    cascadeAfterSave( source, persister, entity, anything );
    if ( useIdentityColumn && insert.isEarlyInsert() ) {
      if ( !EntityIdentityInsertAction.class.isInstance( insert ) ) {
        throw new IllegalStateException(
            "Insert should be using an identity column, but action is of unexpected type: " +
                insert.getClass().getName()
        );
      }
      id = ((EntityIdentityInsertAction) insert).getGeneratedId();

      insert.handleNaturalIdPostSaveNotifications( id );
    }

    markInterceptorDirty( entity, persister, source );

    EntityEntry newEntry = source.getPersistenceContext().getEntry( entity );

    if ( newEntry != original ) {
      OgmEntityEntryState ogmEntityState = newEntry.getExtraState( OgmEntityEntryState.class );
      if ( ogmEntityState == null ) {
        newEntry.addExtraState( original.getExtraState( OgmEntityEntryState.class ) );
      }
    }

    return id;
  }
View Full Code Here

TOP

Related Classes of org.hibernate.engine.spi.EntityEntry

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.