public int getCollectionCount() { return session.getPersistenceContext().getCollectionEntries().keySet().size(); }
public int getCollectionCount() { return session.getPersistenceContext().getCollectionEntries().size(); }
/** * Initialize the flags of the CollectionEntry, including the * dirty check. */ private void prepareCollectionFlushes(SessionImplementor session) throws HibernateException { // Initialize dirty flags for arrays + collections with composite elements // and reset reached, doupdate, etc. log.debug("dirty checking collections"); final List list = IdentityMap.entries( session.getPersistenceContext().getCollectionEntries() ); final int size = list.size(); for ( int i = 0; i < size; i++ ) { Map.Entry e = ( Map.Entry ) list.get( i ); ( (CollectionEntry) e.getValue() ).preFlush( (PersistentCollection) e.getKey() ); } }
/** * Initialize the flags of the CollectionEntry, including the * dirty check. */ private void prepareCollectionFlushes(SessionImplementor session) throws HibernateException { // Initialize dirty flags for arrays + collections with composite elements // and reset reached, doupdate, etc. log.debug("dirty checking collections"); final List list = IdentityMap.entries( session.getPersistenceContext().getCollectionEntries() ); final int size = list.size(); for ( int i = 0; i < size; i++ ) { Map.Entry e = ( Map.Entry ) list.get( i ); ( (CollectionEntry) e.getValue() ).preFlush( (PersistentCollection) e.getKey() ); } }
/** * 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() ); }
collectionsBefore = new HashSet<CollectionEntry>(event.getSession().getPersistenceContext().getCollectionEntries().values()); Collection<CollectionEntry> collectionsAfter = event.getSession().getPersistenceContext().getCollectionEntries().values(); for (CollectionEntry collection : collectionsAfter) { if (!collectionsBefore.contains(collection)) {
collectionsBefore = new HashSet<CollectionEntry>(event.getSession().getPersistenceContext().getCollectionEntries().values()); Collection<CollectionEntry> collectionsAfter = event.getSession().getPersistenceContext().getCollectionEntries().values(); for (CollectionEntry collection : collectionsAfter) { if (!collectionsBefore.contains(collection)) {
Iterator iter = persistenceContext.getCollectionEntries().entrySet().iterator(); while ( iter.hasNext() ) { Map.Entry me = (Map.Entry) iter.next(); persistenceContext.getCollectionEntries() .remove(persistentCollection);
Iterator iter = context.getCollectionEntries().entrySet().iterator(); //TODO: calling entrySet on an IdentityMap is SLOW!! while ( iter.hasNext() ) { Map.Entry me = (Map.Entry) iter.next();
Iterator iter = context.getCollectionEntries().values().iterator(); while ( iter.hasNext() ) {
collectionsBefore = new HashSet<CollectionEntry>(postUpdateEvent.getSession().getPersistenceContext().getCollectionEntries().values()); Collection<CollectionEntry> collectionsAfter = postUpdateEvent.getSession().getPersistenceContext().getCollectionEntries().values(); for (CollectionEntry collection : collectionsAfter) { if (!collectionsBefore.contains(collection)) {
collectionsBefore = new HashSet<CollectionEntry>(postInsertEvent.getSession().getPersistenceContext().getCollectionEntries().values()); Collection<CollectionEntry> collectionsAfter = postInsertEvent.getSession().getPersistenceContext().getCollectionEntries().values(); for (CollectionEntry collection : collectionsAfter) { if (!collectionsBefore.contains(collection)) {
private void evictCollection(PersistentCollection collection) { CollectionEntry ce = (CollectionEntry) getSession().getPersistenceContext().getCollectionEntries().remove(collection); if ( log.isDebugEnabled() ) log.debug( "evicting collection: " + MessageHelper.collectionInfoString( ce.getLoadedPersister(), ce.getLoadedKey(), getSession().getFactory() ) ); if ( ce.getLoadedPersister() != null && ce.getLoadedKey() != null ) { //TODO: is this 100% correct? getSession().getPersistenceContext().getCollectionsByKey().remove( new CollectionKey( ce.getLoadedPersister(), ce.getLoadedKey(), getSession().getEntityMode() ) ); } }
private void evictCollection(PersistentCollection collection) { CollectionEntry ce = (CollectionEntry) getSession().getPersistenceContext().getCollectionEntries().remove(collection); if ( log.isDebugEnabled() ) log.debug( "evicting collection: " + MessageHelper.collectionInfoString( ce.getLoadedPersister(), ce.getLoadedKey(), getSession().getFactory() ) ); if ( ce.getLoadedPersister() != null && ce.getLoadedKey() != null ) { //TODO: is this 100% correct? getSession().getPersistenceContext().getCollectionsByKey().remove( new CollectionKey( ce.getLoadedPersister(), ce.getLoadedKey(), getSession().getEntityMode() ) ); } }
List list = IdentityMap.entries( session.getPersistenceContext().getCollectionEntries() ); int size = list.size(); for ( int i = 0; i < size; i++ ) { list = IdentityMap.entries( session.getPersistenceContext().getCollectionEntries() ); size = list.size(); for ( int i = 0; i < size; i++ ) {
session.getActionQueue().numberOfCollectionUpdates() + " updates, " + session.getActionQueue().numberOfCollectionRemovals() + " removals to " + persistenceContext.getCollectionEntries().size() + " collections" ); new Printer( session.getFactory() ).toString( persistenceContext.getEntitiesByKey().values().iterator(), session.getEntityMode() );
List list = IdentityMap.entries( session.getPersistenceContext().getCollectionEntries() ); int size = list.size(); for ( int i = 0; i < size; i++ ) { list = IdentityMap.entries( session.getPersistenceContext().getCollectionEntries() ); size = list.size(); ActionQueue actionQueue = session.getActionQueue();
session.getActionQueue().numberOfCollectionUpdates() + " updates, " + session.getActionQueue().numberOfCollectionRemovals() + " removals to " + persistenceContext.getCollectionEntries().size() + " collections" ); new Printer( session.getFactory() ).toString(