2015-01-06 62 views
0

我使用Objectify在GAE数据存储中创建以下Entity如何在Objecty中创建组合键?

@Entity 
class TestEntity { 

    Long deviceId; 
    Long userId; 
    boolean status 

} 

在这里,我不能使其中的一个或deviceId作为userId主键(@Id)中,由于它们之间存在一个多到多的关系。因此,我想将deviceIduserId组合为主键,以避免重复输入。

我没有任何线索如何做到这一点。有人可以帮助我吗?

回答

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} 
     ... 
    } 
} 
+1

最好添加一个分隔符,以便{123,1}和{12,31}不会发生冲突。 – stickfigure

+0

@stickfigure是的你是对的,我没有想过这件事。当然,建议在这些值之间使用某种分隔符来使密钥具有唯一性。 – tomrozb