/** * 1. Recreate the collection key -> collection map * 2. rebuild the collection entries * 3. call Interceptor.postFlush() */ protected void postFlush(SessionImplementor session) throws HibernateException { log.trace( "post flush" ); final PersistenceContext persistenceContext = session.getPersistenceContext(); persistenceContext.getCollectionsByKey().clear(); persistenceContext.getBatchFetchQueue().clearSubselects(); //the database has changed now, so the subselect results need to be invalidated Iterator iter = persistenceContext.getCollectionEntries().entrySet().iterator(); while ( iter.hasNext() ) { Map.Entry me = (Map.Entry) iter.next(); CollectionEntry ce = (CollectionEntry) me.getValue(); PersistentCollection pc = (PersistentCollection) me.getKey(); if ( ce.postFlush(pc) ) { //if the collection is dereferenced, remove from the session cache iter.remove(); } else if ( ce.isReached() ) { //otherwise recreate the mapping between the collection and its key persistenceContext.getCollectionsByKey().put( new CollectionKey( ce.getCurrentPersister(), ce.getCurrentKey(), session.getEntityMode() ), pc ); } } session.getInterceptor().postFlush( persistenceContext.getEntitiesByKey().values().iterator() ); }
Boolean isUnsaved = session.getInterceptor().isTransient(entity); if (isUnsaved!=null) return isUnsaved.booleanValue();
Boolean isUnsaved = session.getInterceptor().isTransient(entity); if (isUnsaved!=null) return isUnsaved.booleanValue();
protected boolean invokeInterceptor( SessionImplementor session, Object entity, EntityEntry entry, final Object[] values, EntityPersister persister) { return session.getInterceptor().onFlushDirty( entity, entry.getId(), values, entry.getLoadedState(), persister.getPropertyNames(), persister.getPropertyTypes() ); }
session.getInterceptor().postFlush( new LazyIterator( persistenceContext.getEntitiesByKey() ) );
public void onPreLoad(PreLoadEvent event) { EntityPersister persister = event.getPersister(); event.getSession() .getInterceptor() .onLoad( event.getEntity(), event.getId(), event.getState(), persister.getPropertyNames(), persister.getPropertyTypes() ); } }
session.getInterceptor().preFlush( persistenceContext.getEntitiesByKey().values().iterator() );
/** * Perform any property value substitution that is necessary * (interceptor callback, version initialization...) */ protected boolean substituteValuesIfNecessary( Object entity, Serializable id, Object[] values, EntityPersister persister, SessionImplementor source ) { boolean substitute = source.getInterceptor().onSave( entity, id, values, persister.getPropertyNames(), persister.getPropertyTypes() ); //keep the existing version number in the case of replicate! if ( persister.isVersioned() ) { substitute = Versioning.seedVersion( values, persister.getVersionProperty(), persister.getVersionType() ) || substitute; } return substitute; }
/** * Perform any property value substitution that is necessary * (interceptor callback, version initialization...) */ protected boolean substituteValuesIfNecessary( Object entity, Serializable id, Object[] values, EntityPersister persister, SessionImplementor source ) { boolean substitute = source.getInterceptor().onSave( entity, id, values, persister.getPropertyNames(), persister.getPropertyTypes() ); //keep the existing version number in the case of replicate! if ( persister.isVersioned() ) { substitute = Versioning.seedVersion( values, persister.getVersionProperty(), persister.getVersionType(), source ) || substitute; } return substitute; }
Object[] values = entry.assemble( result, id, subclassPersister, session.getInterceptor(), session ); // intializes result by side-effect TypeFactory.deepCopy( values,
final boolean intercepted = session.getInterceptor().onFlushDirty( entity, entry.getId(),
entityEntry.setDeletedState(deletedState); session.getInterceptor().onDelete( entity, entityEntry.getId(),
final Object[] loadedState = entry.getLoadedState(); int[] dirtyProperties = session.getInterceptor().findDirty( entity, id,
Serializable id = entry.getId(); int[] dirtyProperties = session.getInterceptor().findDirty( entity, id,