Я не знаю ни одного синтаксиса, который позволял бы иметь несколько выражений where, подобных написанному вами.
Убедитесь, что вы используете дозирование. Если нет, попробуйте обновить его с активированным.
Если значение, которое вы хотите использовать для обновления таблицы настроек, уже есть в базе данных где-то еще, вы сможете выполнить одно обновление. Это может быть быстрее.
Если данных еще нет в базе данных, вы можете вставить их во временную таблицу перед выполнением одного запроса на обновление, но здесь вам потребуются sql-запросы (что возможно в hibernate).
Но этот единственный оператор обновления все еще может быть слишком медленным. последнее решение (без переосмысления логики варианта использования), которое я знаю, - это утверждение «выбрать для обновления». Это сырой jdbc, но с пружинным JdbcTemplate это не так больно. Вы выбираете все строки, которые хотите обновить (если это сделает запрос быстрее, вы можете выбрать больше, но в этом случае вы окажете влияние на сетевой ресурс, получив больше строк из базы данных, чем необходимо), а затем обновите они используют jdbc, когда вы их извлекаете.