具有多个唯一键的数据存储区实体

时间:2014-05-15 20:02:17

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

这个问题已经被问到了。但我目前的情况有点不同,我希望现在有更好的答案。所以这里:

我需要一个数据存储区实体拥有两个唯一键,一个是主键。

以下是否足够?当我只为数据存储区创建一个密钥查询时,我需要知道我指的是keyA

@Entity
public class UserAccount implements Serializable{

  @Id
  @GeneratedValue(strategy=GenericType.IDENTITY)
  Key keyA;//based on email

  @PrimaryKey
  @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
  Key keyB;//randomly generated
  //….other data
}

我需要数据存储区来帮助强制执行密钥的唯一性,因此仅仅让keyB成为我自己管理的简单字段是不够的。

1 个答案:

答案 0 :(得分:0)

你必须自己强制执行唯一性。这是非主键,你必须查看,看看你是否得到了结果。