Spring: собственный пакетный запрос с использованием аннотации запроса в репозитории?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Spring: собственный пакетный запрос с использованием аннотации запроса в репозитории?

Сообщение Гость »


Мне приходится выполнять обновления тысяч записей одновременно, разбитых на пакеты, скажем, по 25 фактических обновлений за раз. Обновление основано на уникальном ограничении «сервис+ключ», и если вставка не удалась, значение обновляется.

Обратите внимание, что меня интересует случай UPSERT, а не только стандартные вставки, поскольку я хочу избежать дополнительных операций чтения базы данных, поскольку эти данные в основном статичны.

Я использую Spring с Postgres 14 и думал, что сделаю что-то вроде следующего, чтобы выполнить обновление в классе репозитория, но хотел убедиться, что обновления выполняются пакетно, если это возможно.

Я установил следующие свойства весенней загрузки, но не вижу никаких сообщений в журнале, указывающих на то, что происходит пакетная обработка:

spring.jpa.properties.hibernate.jdbc.batch_size = 25 Spring.jpa.properties.hibernate.order_inserts = правда Могу ли я сделать это, используя такой метод, или мне нужно сделать это другим способом, например?
@Transactional @Модификация @Запрос( родной запрос = правда, значение = "ВСТАВИТЬ В мою_таблицу" + " (сервис, ключ, значение, версия) " + «ЦЕННОСТИ» + " (:service, :key, :value, :version)" + "В КОНФЛИКТЕ НА ОГРАНИЧЕНИИ позвольте_one_value_per_service_key DO" + «ОБНОВЛЕНИЕ» + "УСТАНОВИТЬ" + "значение = исключенное.значение, версия=моя_таблица.версия + 1" + "ГДЕ" + "my_table.value исключенное.значение") недействительный upsertValue( @Param("service") Строковая служба, @Param("key") Строковый ключ, @Param("значение") Строковое значение, @Param("версия") int версия );
Ответить Пред. темаСлед. тема

Быстрый ответ, комментарий, отзыв

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

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

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»