OCAException при попытке обновить настраиваемый атрибут ProductPO

Мы получаем следующее исключение при попытке обновить настраиваемый атрибут в ProductPO с помощью конвейера UpdateCustomAttribute:

Caused by: com.intershop.beehive.orm.capi.common.OCAException: Could not UPDATE object: com.intershop.beehive.xcs.internal.product.ProductPO ...

Кто-нибудь знает, почему? Может быть, потому что у нас есть объект ProductPO, который мы пытаемся обновить в сеансе?

Любая помощь приветствуется!


person Goran Petanjek    schedule 10.09.2018    source источник
comment
Есть ли какой-либо код, который асинхронно обновляет продукт или product_av при обработке запроса? Используете ли вы неявную обработку транзакций в конвейере?   -  person Johannes Metzner    schedule 10.09.2018


Ответы (1)


Распространенное исключение, когда у вас есть несколько запросов / процессов, обновляющих один и тот же объект. См. intershop ORMException не удалось обновить, который хорошо объясняет эту концепцию.

Удерживать ProductPO в сеансе - очень плохая идея. Intershop не будет просматривать объекты сеанса для синхронизации данных о товарах. Лучшая идея - хранить UUID и искать продукт каждый раз, когда вы его обновляете. UUID, потому что с этим вы будете каждый раз попадать в кеш ORM, а не в БД.

person Willem Evertse    schedule 10.09.2018
comment
Спасибо, попробую. - person Goran Petanjek; 10.09.2018