Uso Spring-Data- JDBC (no JPA) y quiero establecer el tamaño de búsqueda.
Sé que el clásico org.springframwork.jdbc.core.JdbcTemplate tiene un setFetchSize(int) , pero tengo el repositorio Spring-Data-JDBC:
org.springframework.data.repository.Repository; org.springframework.data.jdbc.repository.query.Query; /** This is a Spring Data <b>JDBC</b> (JDBC not JPA!). */ public interface UserDao extends Repository<User, Long> { @Query(value = UserRowMapper.SELECT_BY_NAME_STATEMENT rowMapperClass = UserRowMapper.class) Optional<User> findByName(String name); }y esta es la parte relevante de la configuración:
@Configuration @EnableJdbcRepositories public class AppConfigSpringDataJdbc extends AbstractJdbcConfiguration { @Autowired private DataSource dataSource; @Bean public NamedParameterJdbcTemplate namedParameterJdbcTemplate() { return new NamedParameterJdbcTemplate(this.dataSource); } }Entonces mi pregunta es: ¿Cómo/Dónde establecer el tamaño de búsqueda de la consulta sql cuando se usa Spring-Data-JDBC, ya sea por consulta o en general?
(Las soluciones comunes para Spring-Data-JPA no funcionarán, porque no hay anotación persistence.xml o javax.persistence.QueryHint porque es JDBC)
Puede crear NamedParameterJdbcTemplate usando JdbcTemplate personalizado.
@Bean JdbcOperations jdbcOperations(DataSource dataSource) { final var jdbcTemplate = new JdbcTemplate(dataSource); jdbcTemplate.setFetchSize(100); return jdbcTemplate; } @Bean NamedParameterJdbcOperations namedParameterJdbcOperations(JdbcOperations operations) { return new NamedParameterJdbcTemplate(operations); }