Предположим, пользователь_1 и user_2 обратились к сотруднику с id = 101, name = Rahul, accountBalance = 1500 в тот же момент. , так что у обоих пользователей есть сотрудник с указанными выше значениями в руке. Пользователь_1 добавил 1000 к accountBalance и обновил сотрудника. поэтому его баланс составляет 2500 сейчас в базе данных.одновременное обновление с hibernate
И сразу же после того, как user_1 обновит сотрудника, user_2 добавит 500 к балансу счета. Таким образом, 500 будет добавлено к балансу счета сотрудника, который сейчас находится в руке user_2. поэтому 1500 + 500 = 2000.
Но, на самом деле это должно быть (1500 + 1000) = +500 3000.
Как эта проблема решается в Java с спящим режимом?
Хотите ли мы снова проверить последнее значение в бизнес-методе updateEmployee() и затем добавить сумму к этой новой учетной записи?
Пожалуйста, помогите мне справиться с этой ситуацией надлежащим образом. спасибо
ОК. Позвольте мне спросить. я делаю приложение с JSF/primefaces в слое презентации, Spring на бизнес-уровне и спящий режим на уровне доступа к данным. я получаю детали сотрудника в управляемом компоненте employeeEdit через employeeService. employeeService получает объект employee с id = 1 с помощью employeeDao. поэтому, как только оба пользователя будут читать сотрудника таким же образом, баланс учетной записи сотрудника будет отображаться на веб-странице как 1500. После добавления 1000 по user_1 тоже он остается таким же (1500) в представлении user_2 (то есть в резервной копии боб). – amFroz
Итак, каков, как правило, следующий способ обработки такого приложения. user_2 добавляет свой 500 к балансу счета объекта employee (с id = 1), который уже находится в бэк-файле. каково решение – amFroz
Это вопрос aJSF, и я не очень разбираюсь в JSF. Я предполагаю, что бэк-файл хранится в сеансе и, таким образом, отображает устаревшие данные. –