物化和交易

Objectify and transactions

我正在尝试在我的 App Engine 项目中使用 Objectify。它有效,但我有几个 "paths",其中单个实体可以由单个 servlet 读取和写入。现在,如果我很好地理解架构,根据负载,servlet 容器可以多次实例化我的 servlet,不是吗?所以问题是:在这种情况下我需要使用 Objectify 事务吗?我的怀疑很基本,因为我认为这种情况在这种情况下发生了 99%,所以此时另一个问题是:我什么时候可以使用简单的对象化加载和保存?我希望有人能澄清一下。

来自 Objectify Wiki:如果您在没有显式事务的情况下对数据存储进行操作,则每个数据存储操作都被视为单独的小事务,单独重试(link:https://github.com/objectify/objectify/wiki/Concepts#transactionless)。

所以所有的save()delete()都在单独的事务中执行。因此,即使 GAE 启动了您的 Servlet 的多个实例也没有关系。

当您想要将多个操作作为原子事务(全部或 none)执行时,您可能想要显式地启动一个事务。例如select并修改,或者一起修改多个对象....