private Query setFetchSize(final Query query, final Integer value, final boolean shouldStream) { query.addStatementCustomizer(new SmartFetchSizeCustomizer(value, shouldStream)); return query; } }
/** * Specify the maimum number of rows the query is to return. This uses the underlying JDBC * {@link Statement#setMaxRows(int)}}. * * @param maxRows maximum number of rows to return * * @return modified query */ public Query<ResultType> setMaxRows(final int maxRows) { this.addStatementCustomizer(new StatementCustomizers.MaxRowsCustomizer(maxRows)); return this; }
/** * Specify the maimum field size in the result set. This uses the underlying JDBC * {@link Statement#setMaxFieldSize(int)} * * @param maxFields maximum field size * * @return modified query */ public Query<ResultType> setMaxFieldSize(final int maxFields) { this.addStatementCustomizer(new StatementCustomizers.MaxFieldSizeCustomizer(maxFields)); return this; }
/** * Specify the fetch size for the query. This should cause the results to be * fetched from the underlying RDBMS in groups of rows equal to the number passed. * This is useful for doing chunked streaming of results when exhausting memory * could be a problem. * * @param fetchSize the number of rows to fetch in a bunch * * @return the modified query */ public Query<ResultType> setFetchSize(final int fetchSize) { this.addStatementCustomizer(new StatementCustomizers.FetchSizeCustomizer(fetchSize)); return this; }
/** * Specify the maimum number of rows the query is to return. This uses the underlying JDBC * {@link Statement#setMaxRows(int)}}. * * @param maxRows maximum number of rows to return * * @return modified query */ public Query<ResultType> setMaxRows(final int maxRows) { this.addStatementCustomizer(new StatementCustomizers.MaxRowsCustomizer(maxRows)); return this; }
/** * Specify the maimum field size in the result set. This uses the underlying JDBC * {@link Statement#setMaxFieldSize(int)} * * @param maxFields maximum field size * * @return modified query */ public Query<ResultType> setMaxFieldSize(final int maxFields) { this.addStatementCustomizer(new StatementCustomizers.MaxFieldSizeCustomizer(maxFields)); return this; }
/** * Specify the fetch size for the query. This should cause the results to be * fetched from the underlying RDBMS in groups of rows equal to the number passed. * This is useful for doing chunked streaming of results when exhausting memory * could be a problem. * * @param fetchSize the number of rows to fetch in a bunch * * @return the modified query */ public Query<ResultType> setFetchSize(final int fetchSize) { this.addStatementCustomizer(new StatementCustomizers.FetchSizeCustomizer(fetchSize)); return this; }
public <T> T first(Class<T> containerType) { addStatementCustomizer(StatementCustomizers.MAX_ROW_ONE); ContainerBuilder builder = getContainerMapperRegistry().createBuilderFor(containerType); return (T) this.fold(builder, new Folder3<ContainerBuilder, ResultType>() { public ContainerBuilder fold(ContainerBuilder accumulator, ResultType rs, FoldController control, StatementContext ctx) throws SQLException { accumulator.add(rs); control.abort(); return accumulator; } }).build(); }