public int getEntityCount() { return session.getPersistenceContext().getEntityEntries().keySet().size(); }
public int getEntityCount() { return session.getPersistenceContext().getEntityEntries().size(); }
private void handlePostUpdate(Object entity, EventSource source) { EntityEntry entry = (EntityEntry) source.getPersistenceContext() .getEntityEntries().get(entity); // mimic the preUpdate filter if (Status.DELETED != entry.getStatus()) { callbackHandler.postUpdate(entity); } }
/** * process cascade save/update at the start of a flush to discover * any newly referenced entity that must be passed to saveOrUpdate(), * and also apply orphan delete */ private void prepareEntityFlushes(SessionImplementor session) throws HibernateException { log.debug("processing flush-time cascades"); final Map.Entry[] list = IdentityMap.concurrentEntries( session.getPersistenceContext().getEntityEntries() ); //safe from concurrent modification because of how entryList() is implemented on IdentityMap final int size = list.length; for ( int i=0; i<size; i++ ) { Map.Entry me = list[i]; EntityEntry entry = (EntityEntry) me.getValue(); Status status = entry.getStatus(); if ( status == Status.MANAGED || status == Status.SAVING ) { cascadeOnFlush( session, entry.getPersister(), me.getKey() ); } } }
/** * process cascade save/update at the start of a flush to discover * any newly referenced entity that must be passed to saveOrUpdate(), * and also apply orphan delete */ private void prepareEntityFlushes(EventSource session) throws HibernateException { log.debug("processing flush-time cascades"); final Map.Entry[] list = IdentityMap.concurrentEntries( session.getPersistenceContext().getEntityEntries() ); //safe from concurrent modification because of how entryList() is implemented on IdentityMap final int size = list.length; final Object anything = getAnything(); for ( int i=0; i<size; i++ ) { Map.Entry me = list[i]; EntityEntry entry = (EntityEntry) me.getValue(); Status status = entry.getStatus(); if ( status == Status.MANAGED || status == Status.SAVING ) { cascadeOnFlush( session, entry.getPersister(), me.getKey(), anything ); } } }
/** * 1. detect any dirty entities * 2. schedule any entity updates * 3. search out any reachable collections */ private void flushEntities(FlushEvent event) throws HibernateException { log.trace("Flushing entities and processing referenced collections"); // Among other things, updateReachables() will recursively load all // collections that are moving roles. This might cause entities to // be loaded. // So this needs to be safe from concurrent modification problems. // It is safe because of how IdentityMap implements entrySet() final SessionImplementor source = event.getSession(); final Map.Entry[] list = IdentityMap.concurrentEntries( source.getPersistenceContext().getEntityEntries() ); final int size = list.length; for ( int i = 0; i < size; i++ ) { // Update the status of the object and if necessary, schedule an update Map.Entry me = list[i]; EntityEntry entry = (EntityEntry) me.getValue(); Status status = entry.getStatus(); if ( status != Status.LOADING && status != Status.GONE ) { FlushEntityEvent entityEvent = new FlushEntityEvent( source, me.getKey(), entry ); source.getListeners().getFlushEntityEventListener().onFlushEntity(entityEvent); } } source.getActionQueue().sortUpdateActions(); }
final Map.Entry[] list = IdentityMap.concurrentEntries( source.getPersistenceContext().getEntityEntries() ); final int size = list.length; for ( int i = 0; i < size; i++ ) {
session.getActionQueue().numberOfUpdates() + " updates, " + session.getActionQueue().numberOfDeletions() + " deletions to " + persistenceContext.getEntityEntries().size() + " objects" ); log.debug( "Flushed: " +
session.getActionQueue().numberOfUpdates() + " updates, " + session.getActionQueue().numberOfDeletions() + " deletions to " + persistenceContext.getEntityEntries().size() + " objects" ); log.debug( "Flushed: " +