@Override public Integer getFetchSize() { return queryOptions.getFetchSize(); }
/** * If we're able to guess a likely size of the results we can optimize allocation * of our datastructures. * Essentially if we detect the user is not using pagination, we attempt to use the FetchSize * as a reasonable hint. If fetch size is not being set either, it is reasonable to expect * that we're going to have a single hit. In such a case it would be tempting to return a constant * of value one, but that's dangerous as it doesn't scale up appropriately for example * with an ArrayList if the guess is wrong. * * @param rowSelection * @return a reasonable size to use for allocation */ @SuppressWarnings("UnnecessaryUnboxing") private int guessResultSize(RowSelection rowSelection) { if ( rowSelection != null ) { final int maxReasonableAllocation = rowSelection.getFetchSize() != null ? rowSelection.getFetchSize().intValue() : 100; if ( rowSelection.getMaxRows() != null && rowSelection.getMaxRows().intValue() > 0 ) { return Math.min( maxReasonableAllocation, rowSelection.getMaxRows().intValue() ); } else if ( rowSelection.getFetchSize() != null && rowSelection.getFetchSize().intValue() > 0 ) { return rowSelection.getFetchSize().intValue(); } } return 7;//magic number guessed as a reasonable default. }
putIfNotNull( hints, HINT_FETCH_SIZE, getQueryOptions().getFetchSize() ); putIfNotNull( hints, HINT_FLUSH_MODE, getHibernateFlushMode() );
private void fillInNamedQueryBuilder(NamedQueryDefinitionBuilder builder, org.hibernate.query.Query query) { builder.setQuery( query.getQueryString() ) .setComment( query.getComment() ) .setCacheable( query.isCacheable() ) .setCacheRegion( query.getCacheRegion() ) .setCacheMode( query.getCacheMode() ) .setReadOnly( query.isReadOnly() ) .setFlushMode( query.getHibernateFlushMode() ); if ( query.getQueryOptions().getFirstRow() != null ) { builder.setFirstResult( query.getQueryOptions().getFirstRow() ); } if ( query.getQueryOptions().getMaxRows() != null ) { builder.setMaxResults( query.getQueryOptions().getMaxRows() ); } if ( query.getQueryOptions().getTimeout() != null ) { builder.setTimeout( query.getQueryOptions().getTimeout() ); } if ( query.getQueryOptions().getFetchSize() != null ) { builder.setFetchSize( query.getQueryOptions().getFetchSize() ); } }
LOG.needsLimit(); final RowSelection selection = new RowSelection(); selection.setFetchSize( queryParameters.getRowSelection().getFetchSize() ); selection.setTimeout( queryParameters.getRowSelection().getTimeout() ); queryParametersToUse = queryParameters.createCopyUsing( selection );
st.setQueryTimeout( selection.getTimeout() ); if ( selection.getFetchSize() != null ) { st.setFetchSize( selection.getFetchSize() );
st.setQueryTimeout( selection.getTimeout() ); if ( selection.getFetchSize() != null ) { st.setFetchSize( selection.getFetchSize() );
selection.setFetchSize( queryParameters.getRowSelection().getFetchSize() ); selection.setTimeout( queryParameters.getRowSelection().getTimeout() ); queryParametersToUse = queryParameters.createCopyUsing( selection );
@Override public String processSql(String sql, RowSelection selection) { final boolean hasOffset = LimitHelper.hasFirstRow(selection); return sql + (hasOffset ? " limit ({?" + selection.getFetchSize() + "})" + " offset ({?" + selection.getFirstRow() + "})" : " limit ({?" + selection.getFetchSize() + "})"); }
@Override public String processSql(String sql, RowSelection selection) { String beginRow; String endRow; beginRow = encoder.encode(selection.getFirstRow() + ""); endRow = encoder.encode((selection.getFetchSize() + selection.getFirstRow()) + ""); return "select * from ( select *,ROW_NUMBER() over() as rnum from (" + sql + ") where rnum between " + beginRow + " and " + endRow; }
if (rowSelection.getFetchSize() == null) { rowSelection.setFetchSize(original.getFetchSize()); } else if (original.getFetchSize() != null && !original.getFetchSize().equals(rowSelection.getFetchSize())) { throw new IllegalStateException("Multiple row selections not allowed!");
selection.setFetchSize( queryParameters.getRowSelection().getFetchSize() ); selection.setTimeout( queryParameters.getRowSelection().getTimeout() ); queryParametersToUse = queryParameters.createCopyUsing( selection );
LOG.needsLimit(); RowSelection selection = new RowSelection(); selection.setFetchSize( queryParameters.getRowSelection().getFetchSize() ); selection.setTimeout( queryParameters.getRowSelection().getTimeout() ); queryParametersToUse = queryParameters.createCopyUsing( selection );
LOG.needsLimit(); RowSelection selection = new RowSelection(); selection.setFetchSize( queryParameters.getRowSelection().getFetchSize() ); selection.setTimeout( queryParameters.getRowSelection().getTimeout() ); queryParametersToUse = queryParameters.createCopyUsing( selection );
LOG.firstOrMaxResultsSpecifiedWithCollectionFetch(); RowSelection selection = new RowSelection(); selection.setFetchSize( queryParameters.getRowSelection().getFetchSize() ); selection.setTimeout( queryParameters.getRowSelection().getTimeout() ); queryParametersToUse = queryParameters.createCopyUsing( selection );
LOG.firstOrMaxResultsSpecifiedWithCollectionFetch(); RowSelection selection = new RowSelection(); selection.setFetchSize( queryParameters.getRowSelection().getFetchSize() ); selection.setTimeout( queryParameters.getRowSelection().getTimeout() ); queryParametersToUse = queryParameters.createCopyUsing( selection );
@SuppressWarnings("unchecked") @Override public final List<Long> list( SessionImplementor session, QueryParameters queryParameters) throws HibernateException { boolean hasLimit = queryParameters.getRowSelection() != null && queryParameters.getRowSelection().definesLimits(); if (hasLimit) { RowSelection selection = new RowSelection(); selection.setFetchSize( queryParameters.getRowSelection().getFetchSize() ); selection.setTimeout( queryParameters.getRowSelection().getTimeout() ); queryParameters = queryParameters.createCopyUsing(selection); } return super.list(session, queryParameters); }
st.setQueryTimeout( selection.getTimeout() ); if ( selection.getFetchSize() != null ) { st.setFetchSize( selection.getFetchSize() );
st.setQueryTimeout( selection.getTimeout() ); if ( selection.getFetchSize() != null ) { st.setFetchSize( selection.getFetchSize() );