使用@Parent时请求工厂稳定ID,@ ID

时间:2012-11-27 15:35:12

标签: google-app-engine

我想知道是否有办法在服务器上获取实体的stableId?或者是否有更好的解决方案?

在我的应用中,我有两个实体A和B. B有一个父A。

A Class

      @ID 
      Long id

      String name

B Class

    @Parent A

     @ID 
     Long id

     String value

我有一个广播系统,它向已注册的客户端发送消息,并在这些对象发生变化时通知他们。如果我发送A并按ID进行匹配,一切都会好的。如果我尝试通过ID与B匹配,我会遇到问题,因为id不会是唯一的。

B Message
     Long id 

当客户端收到上面的B消息时,如果我尝试比较id字段,那么对于多个B对象它将是相同的。

如何最好地处理这种情况?

1 个答案:

答案 0 :(得分:0)

具有祖先的对象(如B)具有一个键,该键是其自己的ID和祖先的ID的组合。由于您没有详细显示您的代码,我无法直接解决,但我可以提出两种方法来解决这个问题。

  1. 使用对象B的密钥而不是其ID。它们的关键包括对A的引用。

  2. 由于密钥很大,您可能不想使用整个密钥。在这种情况下,您需要使用A的id和B的id来识别B.使用两个ID,您可以获得B.您可以重建Key并按键获取B,或使用指定A的祖先查询作为的祖先。