Обновите n записей, используя JPA с Оптимистической блокировкой - PullRequest
1 голос
/ 04 мая 2010

У меня есть таблица со столбцом с именем «count», и я хочу запустить задание cron, которое вызовет оператор, который выполняет SQL, например так:

update summaryTable set count=4;

Обратите внимание, что могут быть параллельные потоки, считывающие и изменяющие значение для "count" при запуске этого задания cron. В таблице есть столбец версии для поддержки оптимистической блокировки.

Какой эффективный способ обновить счетчик в JPA?

1 Ответ

0 голосов
/ 03 июня 2011

Используя JPA, вы также можете выполнять обновления с использованием JPQL, если у вас есть объект для этой таблицы. Вы можете сделать это с помощью функции query.executeUpdate () .

Что-то вроде: UPDATE SummaryTableEntity ent SET ent.count = 4.

Поскольку это также помечено как EJB3, если ваше расписание cron достаточно простое, вы можете установить таймер EJB, который запускает метод, который выполняет обновление. Таким образом, вы управляете всеми своими синхронизированными задачами в контейнере и вам не нужно беспокоиться о внешнем параллелизме.

...