如何在Object中创建复合键?

时间:2015-01-06 13:48:38

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

我使用Objectify在GAE数据存储区中创建了以下Entity

@Entity
class TestEntity {

    Long deviceId;
    Long userId;
    boolean status

}

在这里,我无法将deviceIduserId作为主键(@Id),因为它们之间存在多对多关系。因此,我想将deviceIduserId的组合作为主键,以避免重复输入。

关于如何做,我没有任何线索。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:2)

如果您确实希望将创建密钥作为deviceIduserId的组合,则可以创建包含此值的其他字段。

@Entity
class TestEntity {
    @Id
    String key;
    Long deviceId;
    Long userId;
    boolean status

    public TestEntity(Long deviceId, Long userId) {
        key = deviceId.toString() +"|" +userId;
        //its better to separate them to avoid conflict
        //{123,1} vs {12,31}
        ...
    }
}