private void endCollectionLoad( final Object resultSetId, final SharedSessionContractImplementor session, final CollectionPersister collectionPersister) { //this is a query and we are loading multiple instances of the same collection role session.getPersistenceContext() .getLoadContexts() .getCollectionLoadContext( (ResultSet) resultSetId ) .endLoadingCollections( collectionPersister ); }
@Override public void endLoading(ResultSetProcessingContextImpl context) { context.getSession().getPersistenceContext() .getLoadContexts() .getCollectionLoadContext( context.getResultSet() ) .endLoadingCollections( collectionReference.getCollectionPersister() ); } }
public void close() throws JDBCException { if ( ps != null ) { LOG.debug( "Closing iterator" ); session.getJdbcCoordinator().getResourceRegistry().release( ps ); try { session.getPersistenceContext().getLoadContexts().cleanup( rs ); } catch (Throwable ignore) { // ignore this error for now LOG.debugf( "Exception trying to cleanup load context : %s", ignore.getMessage() ); } session.getJdbcCoordinator().afterStatementExecution(); ps = null; rs = null; hasNext = false; } }
@Override public final void close() { if ( this.closed ) { // noop if already closed return; } // not absolutely necessary, but does help with aggressive release //session.getJDBCContext().getConnectionManager().closeQueryStatement( ps, resultSet ); session.getJdbcCoordinator().getResourceRegistry().release( ps ); session.getJdbcCoordinator().afterStatementExecution(); try { session.getPersistenceContext().getLoadContexts().cleanup( resultSet ); } catch (Throwable ignore) { // ignore this error for now if ( LOG.isTraceEnabled() ) { LOG.tracev( "Exception trying to cleanup load context : {0}", ignore.getMessage() ); } } this.closed = true; }
private void handlePotentiallyEmptyCollectionRootReturns( LoadPlan loadPlan, Serializable[] collectionKeys, ResultSet resultSet, SharedSessionContractImplementor session) { if ( collectionKeys == null ) { // this is not a collection initializer (and empty collections will be detected by looking for // the owner's identifier in the result set) return; } // this is a collection initializer, so we must create a collection // for each of the passed-in keys, to account for the possibility // that the collection is empty and has no rows in the result set // // todo : move this inside CollectionReturn ? CollectionPersister persister = ( (CollectionReturn) loadPlan.getReturns().get( 0 ) ).getCollectionPersister(); for ( Serializable key : collectionKeys ) { if ( LOG.isDebugEnabled() ) { LOG.debugf( "Preparing collection intializer : %s", MessageHelper.collectionInfoString( persister, key, session.getFactory() ) ); } session.getPersistenceContext() .getLoadContexts() .getCollectionLoadContext( resultSet ) .getLoadingCollection( persister, key ); } }
.getLoadContexts() .getCollectionLoadContext( (ResultSet) resultSetId ) .getLoadingCollection( collectionPersister, key );
PersistentCollection rowCollection = persistenceContext.getLoadContexts() .getCollectionLoadContext( rs ) .getLoadingCollection( persister, collectionRowKey ); persistenceContext.getLoadContexts() .getCollectionLoadContext( rs )
PersistentCollection rowCollection = persistenceContext.getLoadContexts() .getCollectionLoadContext( resultSet ) .getLoadingCollection( collectionReference.getCollectionPersister(), collectionRowKey ); persistenceContext.getLoadContexts() .getCollectionLoadContext( resultSet ) .getLoadingCollection( collectionReference.getCollectionPersister(), optionalKey );
PersistentCollection collection = persistenceContext.getLoadContexts().locateLoadingCollection( persister, key );
private void endCollectionLoad( final Object resultSetId, final SessionImplementor session, final CollectionPersister collectionPersister) { //this is a query and we are loading multiple instances of the same collection role session.getPersistenceContext() .getLoadContexts() .getCollectionLoadContext( ( ResultSet ) resultSetId ) .endLoadingCollections( collectionPersister ); }
private void endCollectionLoad( final Object resultSetId, final SessionImplementor session, final CollectionPersister collectionPersister) { //this is a query and we are loading multiple instances of the same collection role session.getPersistenceContext() .getLoadContexts() .getCollectionLoadContext( ( ResultSet ) resultSetId ) .endLoadingCollections( collectionPersister ); }
/** * Copied from {@link org.hibernate.loader.Loader#endCollectionLoad} * * @param resultSetId the collection result set * @param session the session * @param collectionPersister the collection persister */ private void endCollectionLoad( final ResultSet resultSetId, final SharedSessionContractImplementor session, final CollectionPersister collectionPersister) { //this is a query and we are loading multiple instances of the same collection role session.getPersistenceContext() .getLoadContexts() .getCollectionLoadContext( resultSetId ) //.getCollectionLoadContext( ( ResultSet ) resultSetId ) .endLoadingCollections( collectionPersister ); }
public final void close() throws HibernateException { try { // not absolutely necessary, but does help with aggressive release //session.getJDBCContext().getConnectionManager().closeQueryStatement( ps, resultSet ); ps.close(); } catch (SQLException sqle) { throw session.getFactory().getSQLExceptionHelper().convert( sqle, "could not close results" ); } finally { try { session.getPersistenceContext().getLoadContexts().cleanup( resultSet ); } catch( Throwable ignore ) { // ignore this error for now if ( LOG.isTraceEnabled() ) { LOG.tracev( "Exception trying to cleanup load context : {0}", ignore.getMessage() ); } } } }
public final void close() throws HibernateException { try { // not absolutely necessary, but does help with aggressive release //session.getJDBCContext().getConnectionManager().closeQueryStatement( ps, resultSet ); ps.close(); } catch (SQLException sqle) { throw session.getFactory().getSQLExceptionHelper().convert( sqle, "could not close results" ); } finally { try { session.getPersistenceContext().getLoadContexts().cleanup( resultSet ); } catch( Throwable ignore ) { // ignore this error for now if ( LOG.isTraceEnabled() ) { LOG.tracev( "Exception trying to cleanup load context : {0}", ignore.getMessage() ); } } } }
public void close() throws JDBCException { if (ps!=null) { try { LOG.debug("Closing iterator"); ps.close(); ps = null; rs = null; hasNext = false; } catch (SQLException e) { LOG.unableToCloseIterator(e); throw session.getFactory().getSQLExceptionHelper().convert( e, "Unable to close iterator" ); } finally { try { session.getPersistenceContext().getLoadContexts().cleanup( rs ); } catch( Throwable ignore ) { // ignore this error for now LOG.debugf("Exception trying to cleanup load context : %s", ignore.getMessage()); } } } }
public void close() throws JDBCException { if (ps!=null) { try { LOG.debug("Closing iterator"); ps.close(); ps = null; rs = null; hasNext = false; } catch (SQLException e) { LOG.unableToCloseIterator(e); throw session.getFactory().getSQLExceptionHelper().convert( e, "Unable to close iterator" ); } finally { try { session.getPersistenceContext().getLoadContexts().cleanup( rs ); } catch( Throwable ignore ) { // ignore this error for now LOG.debugf("Exception trying to cleanup load context : %s", ignore.getMessage()); } } } }
@Override public void finishUp() { try { // for arrays, we should end the collection load beforeQuery resolving the entities, since the // actual array instances are not instantiated during loading finishLoadingArrays(); // now finish loading the entities (2-phase load) performTwoPhaseLoad(); // now we can finalize loading collections finishLoadingCollections(); } finally { executionContext.getSession().getPersistenceContext().getLoadContexts().deregister( this ); } }
public static Object resolveEntityInstance( EntityKey entityKey, boolean eager, SharedSessionContractImplementor session) { // First, look for it in the PC as a managed entity final Object managedEntity = session.getPersistenceContext().getEntity( entityKey ); if ( managedEntity != null ) { // todo (6.0) : check status? aka, return deleted entities? return managedEntity; } // Next, check currently loading entities final LoadingEntityEntry loadingEntry = session.getPersistenceContext() .getLoadContexts() .findLoadingEntityEntry( entityKey ); if ( loadingEntry != null ) { return loadingEntry.getEntityInstance(); } // Lastly, try to load from database return session.internalLoad( entityKey.getEntityName(), entityKey.getIdentifier(), eager, false ); } }
.getLoadContexts() .getCollectionLoadContext( ( ResultSet ) resultSetId ) .getLoadingCollection( collectionPersisters[j], keys[i] );
.getLoadContexts() .getCollectionLoadContext( ( ResultSet ) resultSetId ) .getLoadingCollection( collectionPersisters[j], keys[i] );