Привет, я хотел бы передать очень большую таблицу spring-data-jdbc. Для этого
Я установил соединение READ_ONLY. Я объявил в своем хранилище метод, который выглядит следующим образом:
PackageRepository extends Repository<Package,String> {
Stream<Package> findAll();
}
Здесь я ожидаю, что набор результатов будет иметь тип FORWARD_ONLY, и этот метод не будет блокироваться бесконечно, пока все результаты не будут получены из базы данных.
Здесь я бы сделал сравнение с JPA Spring Data, где методы Stream не блокируются, а содержимое базы данных извлекается порциями в зависимости от размера выборки.
Я пропустил некоторые настройки? Как мне добиться такого поведения с помощью spring-data-jdbc?
ОБНОВЛЕНИЕ: я поставлю вопрос в другой форме. Как я могу достичь с spring-data-jdbs эквивалент:
template.query(new PreparedStatementCreator() {
@Override
public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
PreparedStatement statement = con.prepareStatement("select * from MYTABLE with UR",ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
statement.setFetchSize(150000);
return statement;
}
}, new RowCallbackHandler() {
@Override
public void processRow(ResultSet rs) throws SQLException {
// do my processing here
}
});