У меня есть сценарий, в котором мне нужно обновить поле даты для более чем 1000 записей.
Я использовал собственный запрос, но затем получил ошибку ora-01795 maximum number of expressions in a list is 1000
.
После проверки я нашел решения, такие как нарушение предложения in, как указано в этот ответ.
Но я нахожу это решение, не очень чистое.
Есть ли другой подход, который я могу использовать в Spring, который немного чище? Пожалуйста, предложите.
Мой текущий запрос выглядит так:
@Modifying
@Query(value = "UPDATE MY_TABLE SET FLAGGED_DATE = :date WHERE ID IN (:ids)", nativeQuery = true)
void updateFlaggedDate(List<Long> ids, Date date);
Идентификаторы, которые я передаю в списке, собираются из стороннего API.
where id = :id
, а затем запустить пакеты одного и того же оператора SQL с разными значениями переменных связывания из Java. Это не кажется мне более чистым, чем варианты в другом ответе. - person Justin Cave   schedule 03.10.2020