У меня проблема с использованием RowMappers с JDBC (особенно ParameterizedSingleColumnRowMapper
):
Я запрашиваю список существующих идентификаторов из базы данных со следующими данными:
List<Long> existingIds = DS.getJdbcTemplate().query(sql,
new ParameterizedSingleColumnRowMapper<Long>());
Толькопроблема в том, что мой список иногда не содержит длинных, как ожидалось:
// for some value...
System.out.println(existingIds.get(0) instanceof Long); // return FALSE
System.out.println((Object)existingIds.get(0) instanceof Integer); // return TRUE
Я мог бы просто пройти через existingIds
и преобразовать значения в long
, но я ожидал, что это сделает маппер строк (ядумаю, ParameterizedSingleColumnRowMapper
использует getLong
или что-то в этом роде и обычно пытается привести к желаемому значению).
У вас есть какие-либо объяснения или идеи для решения этой проблемы?
Спасибо зазаранее за вашу помощь.