禁用NamedParameterJdbcTemplate缓存

时间:2019-06-11 06:10:48

标签: java spring postgresql

我想更改NamedParameterJdbcTemplate的结果集行为。 (禁用结果集缓存)

例如,使用postgres jdbc驱动程序,您可以像这样更改它:

        conn = datasource.getConnection();
        conn.setAutoCommit(false);
        stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.CONCUR_READ_ONLY);
        stmt.setFetchSize(50);

我如何在spring / spring-boot中实现它?

1 个答案:

答案 0 :(得分:0)

如果目标是更改fetchSize,则可以通过JdbcTemplate实例来实现:

JdbcTemplate jdbcTemplate = new JdbcTemplate(datasource);
jdbcTemplate.setFetchSize(fetchSize);
NamedParameterJdbcTemplate template = new NamedParameterJdbcTemplate(jdbcTemplate);

UPD

说到更改缓存,您可以尝试更改private volatile int cacheLimit实例的NamedParameterJdbcTemplate

NamedParameterJdbcTemplate template = new NamedParameterJdbcTemplate(jdbcTemplate);
template.setCacheLimit(0);

可能,但我没有探索