Есть ли эквивалент @BatchSize в spring-data-jdbc - PullRequest
1 голос
/ 25 марта 2019

Привет! Я использовал данные пружины для сопоставления своего Entity и Repository. Отображение очень просто:

public class Car {

   Set<Part> parts;
}

public class Part {

} 

Я использую интерфейс findAllByIds (Iterable) моего источника данных Spring. И он генерирует хороший sql в виде:

select from CAR where id in (?, ?, ?, ?)

для каждого автомобиля он выполняет ровно один SQL.

Select from Part where car_id = ?

Моя проблема начинается с извлечения связанных частей. Похоже, что он выбирает их один за другим. Есть ли весной данные jdbc, эквивалентные пакетной загрузке в спящем режиме?

Если anser отрицательный, есть ли какой-нибудь относительно простой способ его реализации?

1 Ответ

1 голос
/ 26 марта 2019

К сожалению, ответ на короткий вопрос "Нет" на оба вопроса прямо сейчас.

Если вы хотите внедрить пакетную обработку для выбора, вам нужно будет придумать

a) новая реализация DataAccessStrategy, которая по существу реализует все функциональные возможности CRUD, и / или

b) новый EntityRowMapper, который преобразует ResultSet строк в сущности.

Первый нужен, если вы хотите выполнить другой оператор SQL для начала. Второе, если вы считаете достаточным изменение последующего SQL.

В пакетном режиме есть проблем, которые вы, возможно, захотите отследить или, если точный вариант, который вы ищете, не существует, не стесняйтесь создать другой.

...