写入数据存储会失败吗?
Can a write to the datastore fail?
假设我正在创建一个这样的实体:
Answer answer = new Answer(this, question, optionId);
ofy().save().entity(answer);
我是否应该检查写入过程是否成功?
假设我想做另一个动作(增加一个计数器),我应该做一个包括写入过程的交易吗?
另外,如何查看写入是否成功?
保存时出错会产生异常。请记住,由于您没有调用 now()
,您已经启动了一个异步操作,实际的异常可能会在会话关闭时发生(例如,请求结束)。
是的,如果你想增加一个计数器,你需要启动一个包含加载、增加和保存的事务。还要记住,即使交易成功,交易也有可能重试,因此天真的交易可能会多算。如果您需要严格精确的增量,则模式要复杂得多。所有数据库都会遇到此问题的一些变体。
假设我正在创建一个这样的实体:
Answer answer = new Answer(this, question, optionId);
ofy().save().entity(answer);
我是否应该检查写入过程是否成功?
假设我想做另一个动作(增加一个计数器),我应该做一个包括写入过程的交易吗?
另外,如何查看写入是否成功?
保存时出错会产生异常。请记住,由于您没有调用 now()
,您已经启动了一个异步操作,实际的异常可能会在会话关闭时发生(例如,请求结束)。
是的,如果你想增加一个计数器,你需要启动一个包含加载、增加和保存的事务。还要记住,即使交易成功,交易也有可能重试,因此天真的交易可能会多算。如果您需要严格精确的增量,则模式要复杂得多。所有数据库都会遇到此问题的一些变体。