public Set getEntityKeys() { return Collections.unmodifiableSet( session.getPersistenceContext().getEntitiesByKey().keySet() ); }
public Set getEntityKeys() { return Collections.unmodifiableSet( session.getPersistenceContext().getEntitiesByKey().keySet() ); }
/** * 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() ); }
session.getInterceptor().postFlush( new LazyIterator( persistenceContext.getEntitiesByKey() ) );
session.getInterceptor().preFlush( persistenceContext.getEntitiesByKey().values().iterator() ); persistenceContext.getCollectionEntries().size() + " collections" ); new Printer( session.getFactory() ).toString( persistenceContext.getEntitiesByKey().values().iterator(), session.getEntityMode() );
session.getInterceptor().preFlush( new LazyIterator( persistenceContext.getEntitiesByKey() ) ); ); new Printer( session.getFactory() ).toString( persistenceContext.getEntitiesByKey().values().iterator(), session.getEntityMode() );