自动生成Id App Engine数据存储区

时间:2014-01-24 10:55:29

标签: google-app-engine google-cloud-datastore

如何自动在App引擎数据存储中生成Id? 我正在使用自动创建的后端函数insertEntity()。

作为我使用的主键

@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long Id;

当我调用insert函数时,我希望数据存储区自动分配这个Id ...

感谢。

1 个答案:

答案 0 :(得分:1)

从技术上讲,你所做的事情没有错。该ID将自动生成。

我认为问题是为insertEntity()方法生成的自动生成代码。代码当前期望已提供ID值,并且基于此值,它首先尝试检索现有实体。由于ID很可能为空,即您尚未传递,因此会导致代码中出现异常。

修改代码以检查getId() != null。如果不为null,则只允许它继续前进,否则只需调用makePersistent()代码。