Java 对数据存储的写入会失败吗?

Java 对数据存储的写入会失败吗?,java,google-app-engine,objectify,Java,Google App Engine,Objectify,假设我正在创建这样一个实体: Answer answer = new Answer(this, question, optionId); ofy().save().entity(answer); 我是否应该检查写入过程是否成功 假设我想做另一个动作(增加一个计数器),我应该做一个包括写入过程的事务吗 此外,如何检查写入过程是否成功?保存时出错将产生异常。请记住,由于您没有调用now(),因此您已经启动了一个异步操作,并且在会话关闭时(例如,请求结束)可能会发生实际的异常 是的,如果要递增计数器

假设我正在创建这样一个实体:

Answer answer = new Answer(this, question, optionId);
ofy().save().entity(answer);
我是否应该检查写入过程是否成功

假设我想做另一个动作(增加一个计数器),我应该做一个包括写入过程的事务吗


此外,如何检查写入过程是否成功?

保存时出错将产生异常。请记住,由于您没有调用
now()
,因此您已经启动了一个异步操作,并且在会话关闭时(例如,请求结束)可能会发生实际的异常


是的,如果要递增计数器,则需要启动包含加载、递增和保存的事务。还请记住,即使事务成功,也有可能重试,因此幼稚的事务可能会计算过多。如果您需要严格精确的增量,则该模式要复杂得多。所有数据库都会遇到这种问题。

只要让您的写入方法在成功时返回true,或者返回新id。这是官方文档中关于数据存储写入的重要链接。@Stultuske这是一种内置方法,您无法控制写入过程中出现异常的情况有多罕见?你有没有遇到过这样的情况?当然有,不过现在已经很少见了(HRD非常可靠)。请记住,您可能会意外地设计出会导致问题的情况(如单个实体组上的严重争用)。