0

我的 Google App Engine 数据存储中有两个实体使用 Java,Objectify 4,我有一个要求,这两个实体的自动生成的 id 应该是唯一的,也就是说,来自第一个实体的 id 永远不会有第二个实体的条目.

如何确保生成的 id 不会为不同的实体重复。?

在 JPA 中,如果我对 id 使用生成值策略 AUTO,在数据库级别,维护唯一值,GAE 是否也遵循相同?我目前正在使用 Objectify4 进行持久化。

JPA Ref : AUTO 策略

4

1 回答 1

4

如果您的实体属于同一类型(= JPA 中的同一类),则自动生成的 ID保证是唯一的。

更新:OP 澄清说他需要跨不同实体类型的唯一 ID。

您将需要使用手动生成的 ID - 使用allocateIds(kind, num)kind为所有人使用的方法。使用num1 只生成一个 ID。

long uniqueId = DatastoreService.allocateIds("MyUniqueUserKind", 1).getStart().getId();

kind在这种情况下,只要您始终使用相同的 ID,以这种方式生成的所有 ID 始终是唯一的"MyUniqueUserKind"

于 2013-10-28T14:02:53.840 回答