Добрый день.
У меня есть два слушателя, которые срабатывают последовательно и при этом вызывают методы сервиса. Эти методы изменяют один и тот же объект в БД. При этом возникает ошибка “Объект ААА был изменен в другой транзакции.”
Как можно решить данную проблему?
Методы сервиса:
public void reduceReservedQuantity(Inventory inventoryLine, double quantity){
try (Transaction tx = persistence.createTransaction()) {
EntityManager em = persistence.getEntityManager();
inventoryLine.setQuantityReserved(inventoryLine.getQuantityReserved()-quantity);
em.merge(inventoryLine);
tx.commit();
}
}
public void reduceExpectedQuantity(Inventory inventoryLine, double quantity){
try (Transaction tx = persistence.createTransaction()) {
EntityManager em = persistence.getEntityManager();
inventoryLine.setQuantityExpected(inventoryLine.getQuantityExpected()-quantity);
em.merge(inventoryLine);
tx.commit();
}
}
Спасибо.