我在日志中看到了InvalidVersionException
的一些事件,其中会话中Order对象的版本(OrderHolder)大于缓存中的版本(Repository Item版本)。在什么情况下会发生这种情况?我的理解是,如果我们在事务之外修改和更新Order,我们通常会得到此InvalidVersionException,在这种情况下,缓存中的版本将大于存储在订单内存中的版本。
答案 0 :(得分:0)
更新订单有一个非常完善的模式。您自己更新订单的任何代码(例如,标准购买流程表格处理程序之外)必须执行以下操作。
order.updateVersion()
OrderManager.updateOrder()
如果您不遵循此规则,您最终可能会遇到这些错误。
请参阅http://www.digitalsanctuary.com/tech-blog/java/atg/design-pattern-for-updating-an-atg-order.html