private void markInterceptorDirty(final Object entity, final Object target, EntityPersister persister) { if ( persister.getInstrumentationMetadata().isInstrumented() ) { FieldInterceptor interceptor = persister.getInstrumentationMetadata().extractInterceptor( target ); if ( interceptor != null ) { interceptor.dirty(); } } }
private void markInterceptorDirty(Object entity, EntityPersister persister, EventSource source) { if ( persister.getInstrumentationMetadata().isInstrumented() ) { FieldInterceptor interceptor = persister.getInstrumentationMetadata().injectInterceptor( entity, persister.getEntityName(), null, source ); interceptor.dirty(); } }
public void afterReassociate(Object entity, SessionImplementor session) { //if ( hasLazyProperties() ) { if ( getEntityMetamodel().getInstrumentationMetadata().isInstrumented() ) { FieldInterceptor interceptor = getEntityMetamodel().getInstrumentationMetadata().extractInterceptor( entity ); if ( interceptor != null ) { interceptor.setSession( session ); } else { FieldInterceptor fieldInterceptor = getEntityMetamodel().getInstrumentationMetadata().injectInterceptor( entity, getEntityName(), null, session ); fieldInterceptor.dirty(); } } }
/** * Whether or not this class can be lazy (ie intercepted) */ public boolean isInstrumented() { return instrumentationMetadata.isInstrumented(); }
public void afterReassociate(Object entity, SessionImplementor session) { //if ( hasLazyProperties() ) { if ( getEntityMetamodel().getInstrumentationMetadata().isInstrumented() ) { FieldInterceptor interceptor = getEntityMetamodel().getInstrumentationMetadata().extractInterceptor( entity ); if ( interceptor != null ) { interceptor.setSession( session ); } else { FieldInterceptor fieldInterceptor = getEntityMetamodel().getInstrumentationMetadata().injectInterceptor( entity, getEntityName(), null, session ); fieldInterceptor.dirty(); } } }
/** * Whether or not this class can be lazy (ie intercepted) */ public boolean isInstrumented() { return instrumentationMetadata.isInstrumented(); }
private void markInterceptorDirty(final Object entity, final Object target, EntityPersister persister) { if ( persister.getInstrumentationMetadata().isInstrumented() ) { FieldInterceptor interceptor = persister.getInstrumentationMetadata().extractInterceptor( target ); if ( interceptor != null ) { interceptor.dirty(); } } }
private void markInterceptorDirty(Object entity, EntityPersister persister, EventSource source) { if ( persister.getInstrumentationMetadata().isInstrumented() ) { FieldInterceptor interceptor = persister.getInstrumentationMetadata().injectInterceptor( entity, persister.getEntityName(), null, source ); interceptor.dirty(); } }
properties[i] = PropertyFactory.buildVersionProperty( prop, instrumentationMetadata.isInstrumented() ); properties[i] = PropertyFactory.buildStandardProperty( prop, instrumentationMetadata.isInstrumented() ); boolean lazy = prop.isLazy() && instrumentationMetadata.isInstrumented(); if ( lazy ) hasLazy = true; propertyLaziness[i] = lazy;
@SuppressWarnings( {"SimplifiableIfStatement"}) private boolean isUnequivocallyNonDirty(Object entity) { if ( getPersister().getInstrumentationMetadata().isInstrumented() ) { // the entity must be instrumented (otherwise we cant check dirty flag) and the dirty flag is false return ! getPersister().getInstrumentationMetadata().extractInterceptor( entity ).isDirty(); } final CustomEntityDirtinessStrategy customEntityDirtinessStrategy = persistenceContext.getSession().getFactory().getCustomEntityDirtinessStrategy(); if ( customEntityDirtinessStrategy.canDirtyCheck( entity, getPersister(), (Session) persistenceContext.getSession() ) ) { return ! customEntityDirtinessStrategy.isDirty( entity, getPersister(), (Session) persistenceContext.getSession() ); } return false; }
properties[i] = PropertyFactory.buildVersionProperty( prop, instrumentationMetadata.isInstrumented() ); properties[i] = PropertyFactory.buildStandardProperty( prop, instrumentationMetadata.isInstrumented() ); boolean lazy = prop.isLazy() && instrumentationMetadata.isInstrumented(); if ( lazy ) hasLazy = true; propertyLaziness[i] = lazy;
@SuppressWarnings( {"SimplifiableIfStatement"}) private boolean isUnequivocallyNonDirty(Object entity) { if ( getPersister().getInstrumentationMetadata().isInstrumented() ) { // the entity must be instrumented (otherwise we cant check dirty flag) and the dirty flag is false return ! getPersister().getInstrumentationMetadata().extractInterceptor( entity ).isDirty(); } final CustomEntityDirtinessStrategy customEntityDirtinessStrategy = persistenceContext.getSession().getFactory().getCustomEntityDirtinessStrategy(); if ( customEntityDirtinessStrategy.canDirtyCheck( entity, getPersister(), (Session) persistenceContext.getSession() ) ) { return ! customEntityDirtinessStrategy.isDirty( entity, getPersister(), (Session) persistenceContext.getSession() ); } return false; }
properties[i] = PropertyFactory.buildVersionProperty( entityBinding.getHierarchyDetails().getVersioningAttributeBinding(), instrumentationMetadata.isInstrumented() ); properties[i] = PropertyFactory.buildStandardProperty( attributeBinding, instrumentationMetadata.isInstrumented() ); boolean lazy = attributeBinding.isLazy() && instrumentationMetadata.isInstrumented(); if ( lazy ) hasLazy = true; propertyLaziness[i] = lazy;
/** * Handle updating the internal state of the entry after actually performing * the database update. Specifically we update the snapshot information and * escalate the lock mode * * @param entity The entity instance * @param updatedState The state calculated after the update (becomes the * new {@link #getLoadedState() loaded state}. * @param nextVersion The new version. */ public void postUpdate(Object entity, Object[] updatedState, Object nextVersion) { this.loadedState = updatedState; setLockMode( LockMode.WRITE ); if ( getPersister().isVersioned() ) { this.version = nextVersion; getPersister().setPropertyValue( entity, getPersister().getVersionProperty(), nextVersion ); } if ( getPersister().getInstrumentationMetadata().isInstrumented() ) { final FieldInterceptor interceptor = getPersister().getInstrumentationMetadata().extractInterceptor( entity ); if ( interceptor != null ) { interceptor.clearDirty(); } } persistenceContext.getSession() .getFactory() .getCustomEntityDirtinessStrategy() .resetDirty( entity, getPersister(), (Session) persistenceContext.getSession() ); notifyLoadedStateUpdated(); }
properties[i] = PropertyFactory.buildVersionProperty( entityBinding.getHierarchyDetails().getVersioningAttributeBinding(), instrumentationMetadata.isInstrumented() ); properties[i] = PropertyFactory.buildStandardProperty( attributeBinding, instrumentationMetadata.isInstrumented() ); boolean lazy = attributeBinding.isLazy() && instrumentationMetadata.isInstrumented(); if ( lazy ) hasLazy = true; propertyLaziness[i] = lazy;
/** * Handle updating the internal state of the entry after actually performing * the database update. Specifically we update the snapshot information and * escalate the lock mode * * @param entity The entity instance * @param updatedState The state calculated after the update (becomes the * new {@link #getLoadedState() loaded state}. * @param nextVersion The new version. */ public void postUpdate(Object entity, Object[] updatedState, Object nextVersion) { this.loadedState = updatedState; setLockMode( LockMode.WRITE ); if ( getPersister().isVersioned() ) { this.version = nextVersion; getPersister().setPropertyValue( entity, getPersister().getVersionProperty(), nextVersion ); } if ( getPersister().getInstrumentationMetadata().isInstrumented() ) { final FieldInterceptor interceptor = getPersister().getInstrumentationMetadata().extractInterceptor( entity ); if ( interceptor != null ) { interceptor.clearDirty(); } } persistenceContext.getSession() .getFactory() .getCustomEntityDirtinessStrategy() .resetDirty( entity, getPersister(), (Session) persistenceContext.getSession() ); notifyLoadedStateUpdated(); }
private boolean isUpdateNecessary(final FlushEntityEvent event, final boolean mightBeDirty) { final Status status = event.getEntityEntry().getStatus(); if ( mightBeDirty || status==Status.DELETED ) { // compare to cached state (ignoring collections unless versioned) dirtyCheck(event); if ( isUpdateNecessary(event) ) { return true; } else { if ( event.getEntityEntry().getPersister().getInstrumentationMetadata().isInstrumented() ) { event.getEntityEntry() .getPersister() .getInstrumentationMetadata() .extractInterceptor( event.getEntity() ) .clearDirty(); } event.getSession() .getFactory() .getCustomEntityDirtinessStrategy() .resetDirty( event.getEntity(), event.getEntityEntry().getPersister(), event.getSession() ); return false; } } else { return hasDirtyCollections( event, event.getEntityEntry().getPersister(), status ); } }
private boolean isUpdateNecessary(final FlushEntityEvent event, final boolean mightBeDirty) { final Status status = event.getEntityEntry().getStatus(); if ( mightBeDirty || status==Status.DELETED ) { // compare to cached state (ignoring collections unless versioned) dirtyCheck(event); if ( isUpdateNecessary(event) ) { return true; } else { if ( event.getEntityEntry().getPersister().getInstrumentationMetadata().isInstrumented() ) { event.getEntityEntry() .getPersister() .getInstrumentationMetadata() .extractInterceptor( event.getEntity() ) .clearDirty(); } event.getSession() .getFactory() .getCustomEntityDirtinessStrategy() .resetDirty( event.getEntity(), event.getEntityEntry().getPersister(), event.getSession() ); return false; } } else { return hasDirtyCollections( event, event.getEntityEntry().getPersister(), status ); } }