【问题标题】:Google app engine entity gets deleted agter 7 daysGoogle 应用引擎实体在 7 天后被删除
【发布时间】:2016-02-10 09:53:03
【问题描述】:

我正在使用 Google 云作为我的 Android 应用程序的后端。 我保存了一个实体:

ObjectifyService.ofy().save().entity(greeting).now();

但 7 天后,实体会从数据存储区中删除。 我想永远保留它们,或者至少保留更长的时间。

【问题讨论】:

  • 您能否提供有关您的实体定义和设置的更多详细信息,以便我改进我的答案?
  • 我正在使用本教程cloud.google.com/appengine/docs/java/gettingstarted/… 进行了一些非常小的更改。要获取我的应用程序中的实体列表,我使用 Android Studio 自动生成的 GreetingEndpoint
  • 我不确定月经是7天,还是巧合,我现在明天就来
  • 您是否检查了您的管理控制台(本地 localhost:8888/_ah/admin 或您的 appengine 帐户)发生了什么?

标签: android google-app-engine backend google-cloud-datastore objectify


【解决方案1】:

您可能会重复使用实体的 id 并因此每 7 天自己覆盖现有实体(好吧,或者网络爬虫会这样做)。

查看开发人员控制台中的数据存储。您应该只看到对您的实体的一些写入,但如果我是对的,您会看到类似 5 次或更多的写入(实际写入计数取决于您的实体中定义的索引数量)。

为确保不会发生这种情况,您只需在调用 save() 之前将问候语的 @Id Long id 属性设置为 null,这样您将获得一个自动生成的 ID。

【讨论】:

  • 我有:Parent Id public Long id;索引公开日期日期;指数公共 int 评级 = 0;索引公众长视图 = 0l;根据教程,ID是自动生成的,每次保存之前都不会将其设置为null。
  • 这是正确的。 Long 的默认值为 null,因此您不必为新创建的 Objects 设置它。如果您加载实体并保存它,您将覆盖现有实体。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-13
相关资源
最近更新 更多