我正在使用GAE,我发现the documentation关于如何使用事务处理两个尝试使用相同密钥创建实体的线程。不幸的是,文档并不清楚如何检测这种情况。它说“第二次尝试原子地失败”,但是怎么样?它是否会引发异常,如果是,那么哪一个?
答案 0 :(得分:1)
它引发了ConcurrentModificationException
。在您的docs link之后,就在第一个代码块之后:
这需要一个事务,因为该值可能会被另一个用户更新...如果在事务期间更新了实体,那么事务将因ConcurrentModificationException而失败。应用程序可以重复事务以使用新数据。