private boolean isAffectedByEnabledFetchProfiles(SharedSessionContractImplementor session) { for ( String s : session.getLoadQueryInfluencers().getEnabledFetchProfileNames() ) { if ( affectingFetchProfileNames.contains( s ) ) { return true; } } return false; }
private boolean isAffectedByEnabledFilters(SharedSessionContractImplementor session) { return session.getLoadQueryInfluencers().hasEnabledFilters() && filterHelper.isAffectedBy( session.getLoadQueryInfluencers().getEnabledFilters() ); }
private EntityLoader getAppropriateUniqueKeyLoader(String propertyName, SharedSessionContractImplementor session) { final boolean useStaticLoader = !session.getLoadQueryInfluencers().hasEnabledFilters() && !session.getLoadQueryInfluencers().hasEnabledFetchProfiles() && propertyName.indexOf( '.' ) < 0; //ugly little workaround for fact that createUniqueKeyLoaders() does not handle component properties if ( useStaticLoader ) { return (EntityLoader) uniqueKeyLoaders.get( propertyName ); } else { return createUniqueKeyLoader( propertyMapping.toType( propertyName ), propertyMapping.toColumns( propertyName ), session.getLoadQueryInfluencers() ); } }
protected CollectionInitializer getAppropriateInitializer(Serializable key, SharedSessionContractImplementor session) { if ( queryLoaderName != null ) { // if there is a user-specified loader, return that // TODO: filters!? return initializer; } CollectionInitializer subselectInitializer = getSubselectInitializer( key, session ); if ( subselectInitializer != null ) { return subselectInitializer; } else if ( session.getLoadQueryInfluencers().getEnabledFilters().isEmpty() ) { return initializer; } else { return createCollectionInitializer( session.getLoadQueryInfluencers() ); } }
private boolean isAffectedByEntityGraph(SharedSessionContractImplementor session) { return session.getLoadQueryInfluencers().getEffectiveEntityGraph().getGraph() != null; }
private void performOrderedBatchLoad( List<Serializable> idsInBatch, LockOptions lockOptions, OuterJoinLoadable persister, SharedSessionContractImplementor session) { final int batchSize = idsInBatch.size(); final DynamicEntityLoader batchingLoader = new DynamicEntityLoader( persister, batchSize, lockOptions, session.getFactory(), session.getLoadQueryInfluencers() ); final Serializable[] idsInBatchArray = idsInBatch.toArray( new Serializable[ idsInBatch.size() ] ); QueryParameters qp = buildMultiLoadQueryParameters( persister, idsInBatchArray, lockOptions ); batchingLoader.doEntityBatchFetch( session, qp, idsInBatchArray ); idsInBatch.clear(); }
@Override public boolean isAffectedByEnabledFilters(SharedSessionContractImplementor session) { return filterHelper.isAffectedBy( session.getLoadQueryInfluencers().getEnabledFilters() ) || ( isManyToMany() && manyToManyFilterHelper.isAffectedBy( session.getLoadQueryInfluencers().getEnabledFilters() ) ); }
public void processFilters(String sql, SharedSessionContractImplementor session) { processFilters( sql, session.getLoadQueryInfluencers().getEnabledFilters(), session.getFactory() ); }
@Override public int bind( PreparedStatement statement, QueryParameters qp, SharedSessionContractImplementor session, int start) throws SQLException { final int columnSpan = definedParameterType.getColumnSpan( session.getFactory() ); final String fullParamName = filterName + '.' + parameterName; final Object value = session.getLoadQueryInfluencers().getFilterParameterValue(fullParamName); final Type type = session.getLoadQueryInfluencers().getFilterParameterType(fullParamName); if ( Collection.class.isInstance( value ) ) { int positions = 0; Iterator itr = ( ( Collection ) value ).iterator(); while ( itr.hasNext() ) { Object next = itr.next(); qp.bindDynamicParameter( type, next ); definedParameterType.nullSafeSet( statement, next, start + positions, session ); positions += columnSpan; } return positions; } else { qp.bindDynamicParameter(type, value); definedParameterType.nullSafeSet( statement, value, start, session ); return columnSpan; } }
return createEntityLoader( lockOptions, session.getLoadQueryInfluencers() ); else if ( session.getLoadQueryInfluencers().getInternalFetchProfile() != null && LockMode.UPGRADE.greaterThan( lockOptions.getLockMode() ) ) { return loaders.get( session.getLoadQueryInfluencers().getInternalFetchProfile() ); return createEntityLoader( lockOptions, session.getLoadQueryInfluencers() ); return createEntityLoader( lockOptions, session.getLoadQueryInfluencers() ); return createEntityLoader( lockOptions, session.getLoadQueryInfluencers() );
@Override public Object getElementByIndex(Serializable key, Object index, SharedSessionContractImplementor session, Object owner) { return new CollectionElementLoader( this, getFactory(), session.getLoadQueryInfluencers() ) .loadElement( session, key, incrementIndexByBase( index ) ); }
@Override public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException { final StringBuilder buf = new StringBuilder( toLeftSqlString( criteria, criteriaQuery ) ); if ( op != null ) { buf.append( ' ' ).append( op ).append( ' ' ); } if ( quantifier != null ) { buf.append( quantifier ).append( ' ' ); } final SessionFactoryImplementor factory = criteriaQuery.getFactory(); final OuterJoinLoadable persister = (OuterJoinLoadable) factory.getMetamodel().entityPersister( criteriaImpl.getEntityOrClassName() ); createAndSetInnerQuery( criteriaQuery, factory ); criteriaImpl.setSession( deriveRootSession( criteria ) ); final CriteriaJoinWalker walker = new CriteriaJoinWalker( persister, innerQuery, factory, criteriaImpl, criteriaImpl.getEntityOrClassName(), criteriaImpl.getSession().getLoadQueryInfluencers(), innerQuery.getRootSQLALias() ); return buf.append( '(' ).append( walker.getSQLString() ).append( ')' ).toString(); }
private QueryKey generateQueryKey( SharedSessionContractImplementor session, QueryParameters queryParameters) { return QueryKey.generateQueryKey( getSQLString(), queryParameters, FilterKey.createFilterKeys( session.getLoadQueryInfluencers().getEnabledFilters() ), session, createCacheableResultTransformer( queryParameters ) ); }
private static Boolean isEagerFetchProfile(SharedSessionContractImplementor session, String role) { LoadQueryInfluencers loadQueryInfluencers = session.getLoadQueryInfluencers(); for ( String fetchProfileName : loadQueryInfluencers.getEnabledFetchProfileNames() ) { FetchProfile fp = session.getFactory().getFetchProfile( fetchProfileName ); Fetch fetch = fp.getFetchByRole( role ); if ( fetch != null && Fetch.Style.JOIN == fetch.getStyle() ) { return true; } } return null; }
@Override protected CollectionInitializer createSubselectInitializer(SubselectFetch subselect, SharedSessionContractImplementor session) { return new SubselectCollectionLoader( this, subselect.toSubselectString( getCollectionType().getLHSPropertyName() ), subselect.getResult(), subselect.getQueryParameters(), subselect.getNamedParameterLocMap(), session.getFactory(), session.getLoadQueryInfluencers() ); }
@Override protected CollectionInitializer createSubselectInitializer(SubselectFetch subselect, SharedSessionContractImplementor session) { return new SubselectOneToManyLoader( this, subselect.toSubselectString( getCollectionType().getLHSPropertyName() ), subselect.getResult(), subselect.getQueryParameters(), subselect.getNamedParameterLocMap(), session.getFactory(), session.getLoadQueryInfluencers() ); }
lockOptions, session.getFactory(), session.getLoadQueryInfluencers() );
hql, false, getProducer().getLoadQueryInfluencers().getEnabledFilters(), getProducer().getFactory(), entityGraphQueryHint
if ( !session.getLoadQueryInfluencers().getEnabledFilters().isEmpty() && persister.isAffectedByEnabledFilters( session ) ) {
@Override protected CollectionInitializer createSubselectInitializer(SubselectFetch subselect, SharedSessionContractImplementor session) { return new CustomSubselectCollectionLoader( this, subselect.toSubselectString( getCollectionType().getLHSPropertyName() ), subselect.getResult(), subselect.getQueryParameters(), subselect.getNamedParameterLocMap(), session.getFactory(), session.getLoadQueryInfluencers() ); }