0

私の Google App Engine データ ストアには、Java、Objectify 4 を使用する 2 つのエンティティがあります。これら 2 つのエンティティの自動生成 ID は一意である必要があります。つまり、最初のエンティティの ID が 2 番目のエンティティのエントリを持つことはありません。 .

生成された ID が異なるエンティティに対して繰り返されないようにする方法。?

JPAでIDに生成値戦略AUTOを使用している場合、データベースレベルで一意の値が維持されますが、GAEも同じに従うかどうかは? 現在、永続化のために Objectify4 を使用しています。

JPA 参照 : AUTO 戦略

4

1 に答える 1

4

エンティティが同じ種類(= JPA では同じクラス) である場合、自動生成された IDは一意であることが保証されます。

更新: OP は、さまざまな種類のエンティティ間で一意の ID が必要であることを明確にしました。

手動で生成された ID を使用する必要があります。すべてallocateIds(kind, num)のために作成された ID を使用する方法を使用してくださいkind。1 を使用numして、1 つの ID のみを生成します。

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

この方法で生成されたすべての ID は、常に同じものを使用している限り、常に一意ですkind(この場合) "MyUniqueUserKind"

于 2013-10-28T14:02:53.840 に答える