Hibernate(JPA):如何在修改和提交多个对象时处理StaleObjectStateException
考虑一下场景:
一个Db事务,通过版本控制从不同的表中包含多行。
例如:
一个商店列表和产品。如果shopList可能包含产品(其数量在商店列表中)并且产品具有其当前库存。
当我插入ou编辑shopList时,我希望更新shopList中的那些产品的库存以保持库存一致。
为此,我打开一个事务,插入/更新shopList,更新每个产品的股票(应用delta),然后提交交易。到目前为止没什么大不了的。
但是,其他用户可能已经更新了一个或多个共同的产品。甚至更新了shopList本身。在这两种情况下,我都会在提交事务时得到StaleObjectStateException。
问题是:有没有办法确定哪个表导致StaleObjectStateException?
如果产品导致异常,我可以从数据库中刷新所有已包含的产品,然后重新应用库存增量。那没关系。
如果shopList导致异常,最好简单地向用户报告问题,以便他可以重新开始。
非常感谢您的帮助。
没有找到相关结果
已邀请:
1 个回复
死搭胯