@Override public SqlStatementParameterCustomizer createForParameter(Annotation annotation, Class<?> sqlObjectType, Method method, Parameter param, int index, Type type) { return (stmt, fetchSize) -> ((Query) stmt).setFetchSize((Integer) fetchSize); } }
@Override public SqlStatementCustomizer createForType(Annotation annotation, Class<?> sqlObjectType) { int fetchSize = ((FetchSize) annotation).value(); return stmt -> ((Query) stmt).setFetchSize(fetchSize); }
@Test public void testFetchSize() { h.createScript(findSqlOnClasspath("default-data")).execute(); ResultIterable<Something> ri = h.createQuery("select id, name from something order by id") .setFetchSize(1) .mapToBean(Something.class); ResultIterator<Something> r = ri.iterator(); assertThat(r.hasNext()).isTrue(); r.next(); assertThat(r.hasNext()).isTrue(); r.next(); assertThat(r.hasNext()).isFalse(); }