无法在app-engine中创建新对象:重复主键(id:type long)

时间:2016-06-12 22:52:11

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

1.-创建对象ID

// Allocate a key for the conference -- let App Engine allocate the ID
final Key<Conference> conferenceKey = factory().allocateId(profileKey, Conference.class);
// Get the Conference Id from the Key
final long conferenceId = conferenceKey.getId();

2.-创建objeto,添加id

// Create Conference
Conference conference = new Conference(conferenceId,userId,conferenceForm);

3.-保存对象:

// Save Conference and Profile Entities
ofy().save().entities(profile,conference).now();
ofy().save().entity(conference).now();

4.-错误,使用相同的id(Datastore google)

倍数倍

datastore google platform

  

注意:使用相同的ANDROID_CLIENT_ID(发布模式)

创建相同的对象

1 个答案:

答案 0 :(得分:3)

你所看到的是正确的。您的屏幕截图显示了ID = 1但具有不同父级(祖先路径)的2个实体。

数据存储区密钥是从其完整的祖先路径形成的,它是唯一的密钥 - 而不是ID /名称。 ID /名称仅在其父级范围内是唯一的。如果实体没有祖先,那么您可能希望该ID是唯一的。

This page概述了密钥。