有人可以提供一些关于如何在Java应用引擎中使用Java编码密钥的简单代码。示例代码有点令人困惑。假设我有一个员工类,我希望手动构建主键,格式为“姓名,电子邮件,电话”,例如样本密钥为“James Smith,james @ mycompany.com,12345678”
参考示例代码
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
@Extension(vendorName="datanucleus", key="gae.encoded-pk", value="true")
private String encodedKey;
@Persistent
@Extension(vendorName="datanucleus", key="gae.pk-name", value="true")
private String keyName;
我将encodedKey
和keyName
分配给哪些值?经过各种尝试后,我仍然收到以下错误:
主键字段是已编码的字符串,但已提供未编码的值。如果要在此字段上设置未编码的值,可以将其类型更改为未编码的字符串(删除“gae.encoded-pk”扩展名),将其类型更改为com.google.appengine.api.datastore .Key然后设置Key的名称字段,或者为主键的name组件创建一个单独的String字段,并添加“gae.pk-name”扩展名。
答案 0 :(得分:2)
您需要设置密钥名称,而不是密钥。为此,请遵循错误消息中的任何建议,然后将编码的字符串指定为键名。
答案 1 :(得分:1)
您应该可以为键名设置一个值,让游戏api自动为您填充编码的键。